【发布时间】:2015-10-05 14:15:27
【问题描述】:
在我的一次(FWIW,ARM)调试会话中,我注意到来自 GDB 和 objdump -S 的源代码交错反汇编输出以一种有趣的方式不同:objdump 似乎跳过单个/一组指令并显示源代码行从中生成这些指令(指令顺序)。另一方面,GDB 反汇编似乎会跳过源代码行,并列出从该源代码行生成的所有汇编指令(源代码顺序)。
对于-O0 代码,两个程序的输出看起来相同。但是,对于优化的代码,GDB 的反汇编更有帮助,因为它将所有那些原本分散的指令收集在一个地方,因此很容易看到单独的源代码行生成了什么(显然,在这种情况下,指令地址不会是连续的)。
我认为这两种形式对它们自己都有帮助。我的问题是这两个程序的显示行为是否是可配置的。 IOW,我可以告诉 GDB 像 objdump 一样显示,还是告诉 objdump 像 GDB 一样显示?另外,是否有其他工具可以执行此壮举?
TIA。
【问题讨论】:
标签: gdb disassembly objdump