gdb 在相对于基地址的地址处打印符号

标签 gdb memory-address debug-symbols nm base-address

我在地址 myfile.exe+0x144c7 处发现了可疑的死锁(来自 ProcessExplorer 中的线程列表)。现在,我想知道它是哪个函数。

info symbol addr

要求 addr 是绝对的。是否有一个命令获取 ProcessExplorer 给出的相对地址。我可以添加 0x400000,但如果 GDB 可以帮我做的话会更好。

最佳答案

gdb 接受符号地址的表达式,因此您可以执行如下操作:

info symbol 0x40000000 + 0x144c7

如果您检查“信息变量”(或在可执行文件上使用 nm),则包含代码的文本段可能有一个符号名称,因此您也可以执行以下操作:

info symbol _init + 0x144c7

请注意,如果您的问题出在 DLL 或其他文本段中,则符号可能无法按预期工作。

关于gdb 在相对于基地址的地址处打印符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24058942/

相关文章:

visual-c++ - 什么是 .sym 文件以及如何从 Visual-C++ 使用它?

c# - 从调试进程 MainModule 获取符号

android - 调试 native Android 代码

c++ - gdb 只接受第一个参数

c指针引用和算术

c - 将变量地址传递给 C 函数

c# - 无法找到或打开 PDB 文件 - PDB 不是使用 DLL 构建的

c - gdb - cygexpat-1.dll 缺失

c - 为什么我可以在一个char的内存地址中存储一个字符串?

c - 内存地址