GDB: почему установка одного и того же адреса в двух разных адресных указателях показывает разные значения - PullRequest
0 голосов
/ 10 марта 2020

Я устанавливаю один и тот же адрес в два разных адресных указателя. После установки адресов, когда я проверяю эти указатели, я получаю нужный адрес в одном указателе и код операции в другом указателе.

================
gdb-peda$ set *0xffffffff81a95822=0xffffffff81400a1d    
gdb-peda$ x 0xffffffff81a95822
0xffffffff81a95822 <default_idle+34>:   0xab24258b81400a1d

================
gdb-peda$ set *0xffffffff82603e18=0xffffffff81400a1d
gdb-peda$ x 0xffffffff82603e18
0xffffffff82603e18: 0xffffffff81400a1d

В приведенной выше команде gdb вы видите, что я установил

0xffffffff81400a1d

для обоих * 0xffffffff82603e18 и * 0xffffffff82603e18 и после установки нового значения при проверке я получаю 0xffffffff81400a1d (ожидается) и 0xab24258b81400a1d (некоторый код операции).

Я также заметил, что исходное содержимое 0xffffffff81a95822 было 0xab24258b44659066 и после установки нового значения ( 0xffffffff81400a1d ), только нижнее 8 -бит меняется.

Кто-нибудь может объяснить, пожалуйста, что здесь происходит? Почему я получаю два разных результата для одного и того же адреса?

...