Я устанавливаю один и тот же адрес в два разных адресных указателя. После установки адресов, когда я проверяю эти указатели, я получаю нужный адрес в одном указателе и код операции в другом указателе.
================
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 -бит меняется.
Кто-нибудь может объяснить, пожалуйста, что здесь происходит? Почему я получаю два разных результата для одного и того же адреса?