GDB - 将地址映射到源代码中的行和列

GDB - map address to line and column in source code

gcc和clang都有选项-gcolumn-info,是这样描述的:

Emit location column information into DWARF debugging information, rather than just file and line.

我已经用这个选项编译了我的二进制文件。现在我有了一些指令的地址,想将它翻译回源文件,行号 和列 。有没有办法在 gdb 中做到这一点?是否有其他工具可以提取此信息?

我知道我可以在gdb中使用info line *0xabcd1234获取该地址对应的源文件和行,但它没有显示该列。

回答我的问题,我找到了一种使用 lldbimage lookup 命令获取信息的方法:

(lldb) image lookup --address 0x134adc
      Address: libaaa.so[0x0000000000134adc] (libaaa.so.PT_LOAD[0]..text + 1030908)
      Summary: libaaa.so`test() + 272 at test.cpp:1842:124