我正在研究一些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
命令需要一个结束地址才能正常工作。
答案 0 :(得分:3)
如果GDB可以在位置
处反汇编代码0x0000000001d98f22
是:(gdb) x/20i 0x0000000001d98f22
如果您的JIT由Java完成,您还应该阅读this answer。