如果在编译C文件时向GCC提供默认选项(-g),那么如何从Linux上的可执行文件转储debug_loc部分?我使用的是linux实用程序readelf
。转储可执行文件中的debug_loc部分
GCC默认生成DWARF4格式的DWARF信息,所以如果我传递-g-dwarf2,我可以看到.debug_loc部分,但如果使用默认选项生成信息时如何检查该部分,因为我没有看到该部分倾倒?
如果在编译C文件时向GCC提供默认选项(-g),那么如何从Linux上的可执行文件转储debug_loc部分?我使用的是linux实用程序readelf
。转储可执行文件中的debug_loc部分
GCC默认生成DWARF4格式的DWARF信息,所以如果我传递-g-dwarf2,我可以看到.debug_loc部分,但如果使用默认选项生成信息时如何检查该部分,因为我没有看到该部分倾倒?
您是否使用binutils的最新版本?在Ubuntu 14.04上,我可以使用“gcc -g test.c -o test”构建可执行文件。
随着“readelf --debug突降=信息测试”我可以证实它的使用矮4
之后,你有(至少)两种方式来转储.debug_line节的内容。
readelf --debug转储= decodedline测试
这将转储解码行号信息。你直接得到线==地址映射。
还有:
readelf --debug突降= rawline测试
这让你生debug_line内容。
你使用最新版本的binutils吗?在Ubuntu 14.04上,我可以使用“gcc -g test.c -o test”构建可执行文件。然后执行“readelf --debug-dump = info test”并查看它的DWARF 4,然后执行readelf --debug-dump = decodedline测试并获取.debug_line部分的内容。 – dbrank0 2015-02-11 07:09:34
ohh我不知道这个选项。请解释更多关于这个,并把它放在答案我会接受它非常感谢! – 2015-02-11 07:12:46