我正在使用 GCC ARM 交叉编译器 ( arm-none-eabi-*
) 并且正在使用专有调试器。调试器可以突出显示选定源代码行的结果程序集。使用 nm 和 objdump,我可以看到二进制文件有多个.debug_*
部分。很明显可以得出结论,调试器正在使用这些部分中包含的信息将源代码行映射到反汇编(反之亦然)。但我想怎么做。我想知道这些部分包含哪些信息,它们是如何相关的,以及如何理解它们。简而言之,如果我要编写一个调试器(或者至少是一个可以显示这些映射的工具:源到反汇编,以及每个源行的反汇编行数),我将如何阅读这些部分并使用它们. 假设零编译优化。
大概有一些文档描述了这些部分的格式?