我正在动态加载二进制代码我想在汇编中使用GDB进行调试。
使用layout asm
,在调试时我到达以下指令:
call *%eax
其中寄存器eax
包含我已加载的二进制代码的地址以及我希望GDB进行调试的地址。每次我尝试通过stepi
:
没有函数包含所选帧的程序计数器。
我已经在使用set disassemble-next-line on
,它应该自动反汇编我进入的下一条指令。
我正在使用GDB 7.2。有什么建议吗?
答案 0 :(得分:2)
您可以使用
disassemble $pc,+64
无论是否有调试信息,(或其他一些小数而不是64)来查看下一个即将发出的指令。
layout asm
应该自动执行此操作,因为它受到终端高度的隐式限制。这看起来像GDB错误/增强请求(但我已经在amd64上看到 GNU gdb(Debian 7.12-6)7.12.0.20161007-git 所需的行为。)