使用gdb进行反汇编,直接按照函数名skip反汇编出的指令和按照地址反汇编出的指令不同,但是gdb的提示皆为 函数skip 的反汇编,请问这是什么原因呢?
在尝试中发现,程序运行前进行反汇编skip和运行后按照地址汇编是相同的。
反汇编的是csapp的bomb lab中的bomb
使用gdb进行反汇编,直接按照函数名skip反汇编出的指令和按照地址反汇编出的指令不同,但是gdb的提示皆为 函数skip 的反汇编,请问这是什么原因呢?
在尝试中发现,程序运行前进行反汇编skip和运行后按照地址汇编是相同的。
反汇编的是csapp的bomb lab中的bomb
backtrace 显示的地址是 skip 函数在哪里被调用,和 skip 函数定义的位置当然不一样
谢谢!我看了链接以后发现,里面是说返回的是information about the current function,这边的地址应该就是当前函数所在的地址,而不是调用的地址。
而且我对其中的案例进行实验,发现直接 disassemble->level0
和 进入 dissassemble-> *bt 后所得的level0地址*
得到的结果一致,后面是我的实验截图。
我另外还发现,无论什么c语言程序,无论里面有没有skip函数
,只要gdb调试运行即r后
,都能disassemble skip
。