Размер гекса в сборке х64 - PullRequest
0 голосов
/ 13 ноября 2018

Я пытаюсь попробовать все варианты команды x в сборке.Я набрал

(gdb) x /x $rsp
0x7fffffffdf90: 0x01

Согласно моей книге команда x / x выбирает первые 8 байтов из rsp и записывает их как шестнадцатеричный код.Тем не менее, в поисках документации по сборке (gdb help) я нигде не обнаружил, что размер / x явно равен 8 байтам.Так как же узнать, действительно ли это 8 байтов?

1 Ответ

0 голосов
/ 13 ноября 2018

Так как же узнать, действительно ли это 8 байтов?

Это не так.Это «какой бы размер вы ни использовали в последний раз». Документация .

Например:

(gdb) x/bx $rsp
0x7fffffffcbc8: 0x1c

Последующие x/x команды будут использовать размер 1 (один символ):

(gdb) x/x $rsp
0x7fffffffcbc8: 0x1c

Вы можете переопределить размер явно:

(gdb) x/gx $rsp
0x7fffffffcbc8: 0x00007ffff7ddc61c

Последующие x/x команды теперь по умолчанию имеют размер 8:

(gdb) x/x $rsp
0x7fffffffcbc8: 0x00007ffff7ddc61c
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...