Ubuntu GDB не может получить доступ к памяти по адресу, когда пытаюсь просмотреть память в $esp
Привет,
Я запускаю Ubuntu на VMWARE, и когда я пытаюсь получить доступ к памяти в $esp, я получаю сообщение об ошибке, как показано на скриншоте ниже. Я пытался найти ответы, но большинство из них были слишком сложными.
Есть ли какая-либо конфигурация, которую мне нужно сделать, чтобы это работало?
Я попытался запустить GDB на моем компьютере с Windows, и у него нет этой проблемы.
Благодарю.
1 ответ
Решение
Ты хочешь $rsp
не $esp
,
Используя $esp
вы получили 32-битное усеченное значение со знаком $rsp
, что указывает на Неверлэнд.
Примечание: GDB обеспечивает $sp
псевдорегистр, который автоматически отображается на правильный регистр указателя стека для данной платформы.
(gdb) p $rsp
$1 = (void *) 0x7fffffffe178
(gdb) p $sp
$2 = (void *) 0x7fffffffe178
(gdb) p $esp
$3 = -7816
(gdb) p/x $esp
$4 = 0xffffe178