在我的一个(FWIW,ARM)调试会话期间,我注意到来自GDB和objdump -S
的源交错反汇编输出以一种有趣的方式不同:objdump
似乎跳过单个/一组指令和显示生成这些指令的源行(指令顺序)。另一方面,GDB反汇编似乎跳过源代码行,并列出了从该源代码行生成的所有汇编指令(源代码顺序)。
对于-O0
代码,两个程序的输出看起来都一样。但是,对于优化的代码,GDB的反汇编更有用,因为它一次性收集所有那些分散的指令,因此很容易看到该源代码生成的内容(显然,在这种情况下,指令地址不会是连续的。
我认为这两种形式都有助于他们自己。我的问题是两个程序的显示行为是否可配置。 IOW,我可以告诉GDB显示objdump
,还是告诉objdump
显示像GDB一样?此外,还有其他工具可以执行此专长吗?
TIA。