GDB:看某个地址的程序集?

时间:2015-01-03 14:59:10

标签: debugging gcc gdb gnu jit

我正在研究一些JIT编译器,我正在使用GDB进行首次亮相,我的代码在某些时候崩溃(段错误),但它在jitted代码崩溃(它们是动态生成的)所以我没有得到堆栈帧信息,但我得到了以下回溯:

#0  0x0000000001d98f22 in ?? () // JITTED CODE
#1  0x000000000000001d in ?? () // JITTED CODE
#2  ...callattribuite function....

我想知道GDB是否有可能在位置0x0000000001d98f22处反汇编代码并将其显示给我。我试过disas 0x0000000001d98f22,但GDB抱怨No function contains specified address.


编辑: 我自己也解决了这个问题,disas命令需要一个结束地址才能正常工作。

1 个答案:

答案 0 :(得分:3)

  

如果GDB可以在位置0x0000000001d98f22

处反汇编代码

是:(gdb) x/20i 0x0000000001d98f22

如果您的JIT由Java完成,您还应该阅读this answer