Mar*_* A. 1 debugging gcc elf dwarf
我试图弄清楚 DWARF 2 debug_line 部分是如何编码的。标准论文(http://www.dwarfstd.org/doc/dwarf-2.0.0.pdf)对我没有多大帮助,我真的不明白像下面这样的事情:
.4byte .debug_line
.4byte 0x736e7502, 0x656e6769, 0x6e692064, 0x04070074
Run Code Online (Sandbox Code Playgroud)
代表某物。那里编码了“无符号整数”字符串,但前面的 0x02 值..这代表什么?我什至找不到带有 DWARF 2 常量的标准 enum/define 标头..有人可以解释一下如何解析 DWARF 2 中的 debug_line 吗?
小智 10
我知道,这是一个很古老的问题,但可能有人会寻找阅读 .debug_line 部分的方法。我发现readelf能够解析它:
readelf --debug-dump=line <path/to/binary>
Run Code Online (Sandbox Code Playgroud)
(或者)
readelf --debug-dump=decodedline <path/to/binary>
Run Code Online (Sandbox Code Playgroud)
首先显示您解释的 .debug_line 内容出现在 Elf 二进制文件中。Second 将所有数据组合成更结构化的视图,关于在特定 .debug_line 单元中给出的不同记录之间的引用。
还有一个工具dwarfdump(在 Ubuntu 存储库中可用),但我没有机会检查它。