反汇编并与源代码混排的问题
时间:2009-08-18 来源:kentzhou
前些时候发现一个目录下objdump反汇编*.o产生的汇编程序与源代码混排之后没有显示出源代码来,查了查原因发现是这样的:
elf格式的文件遵循dwarf version 2的debug格式,编译的时候加入-g会在*.o中增加"debug_line" "debug_info"等section, 用于反汇编的时候汇编代码对应c代码的行号,所以需要加上-g.
gcc的一些优化选项如-O2会让汇编代码与c代码的对应更困难,所以很多时候加了优化之后再反汇编来看会发现混排没对应上,这个时候只能读汇编来分析了。
elf格式的文件遵循dwarf version 2的debug格式,编译的时候加入-g会在*.o中增加"debug_line" "debug_info"等section, 用于反汇编的时候汇编代码对应c代码的行号,所以需要加上-g.
gcc的一些优化选项如-O2会让汇编代码与c代码的对应更困难,所以很多时候加了优化之后再反汇编来看会发现混排没对应上,这个时候只能读汇编来分析了。
相关阅读 更多 +