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

标签 gdb debug-information

gcc 和 clang 都有选项 -gcolumn-info,其描述如下:

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

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

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

最佳答案

在回答我的问题时,我找到了一种使用lldb图像查找命令获取信息的方法:

(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

关于GDB - 将地址映射到源代码中的行和列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58358817/

相关文章:

linux - 如何将内核调试信息构建为单独的文件?

c - x86 程序集(英特尔风格)中的相对寻址,是相对于 "slot"的顶部还是底部给出的偏移量?

c - 了解堆栈数组实现 (C)

c - 为什么 GDB 在写入网络时会中断?

visual-studio - 有什么办法让Delphi读取其他调试格式?

linux - 在哪里可以找到 ubuntu 12.04 的调试信息内核 rpm?

linux - 如何从 vmlinux 安装 debuginfo 包

c - 如何使用 C/C++ 将代码注入(inject)正在运行的进程

c++ - 如何更改 QT Creator 中的调试器?