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

Posted

技术标签:

【中文标题】gdb 在相对于基地址的地址处打印符号【英文标题】:gdb print symbol at address relative to base address 【发布时间】:2014-06-05 11:24:54 【问题描述】:

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

info symbol addr

要求 addr 是绝对的。是否有一个命令采用 ProcessExplorer 给出的相对地址。我可以添加 0x400000,但如果 GDB 可以为我做就更好了。

【问题讨论】:

【参考方案1】:

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

info symbol 0x40000000 + 0x144c7

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

info symbol _init + 0x144c7

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

【讨论】:

有没有办法在不加载到虚拟内存的情况下获取符号名称? @DanBonachea myfile.exe+0x144c7(来自 ProcessExplorer 中的线程列表)。这不是说它是什么操作系统吗。

以上是关于gdb 在相对于基地址的地址处打印符号的主要内容,如果未能解决你的问题,请参考以下文章

如何 gdb 如何打印一个地址中的内容

为啥 gdb 在 RIP 相对模式下显示与绝对地址不同的地址?

GDB Python API:从地址获取符号名称

工具篇之GDB调试器用法

使用 gdb 打印 IP 地址

GDB远程调试,好像找不到符号