You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在GDB中通过指令地址获取对应源代码行?

获取GDB指令地址对应的源代码行

既然你已经具备调试符号了,搞定这个问题其实很简单,直接用GDB的这两个命令就能快速定位:

  • 查看地址对应的源代码位置:使用info line命令,加上星号指定目标地址,输入:

    (gdb) info line *0x00007f8aba6ad96c
    

    这个命令会直接返回该指令地址对应的源代码文件名和具体行号,比如类似这样的输出:Line 45 of "laprintf.c" starts at address 0x7f8aba6ad950 <laprintf+144> and ends at 0x7f8aba6ad970 <laprintf+176>.

  • 直接查看对应行的源代码上下文:如果想立刻看到那一行附近的代码,用list命令同样指定地址:

    (gdb) list *0x00007f8aba6ad96c
    

    它会显示该地址所在位置前后的源代码行,帮你快速定位上下文。

需要注意的是,你看到的nop指令可能是编译器优化时插入的填充指令,它本身可能没有直接对应的源代码行,但调试符号依然会把它关联到所在函数的代码块中,info line返回的就是这个代码块对应的源代码行。

内容的提问来源于stack exchange,提问作者Zhani Baramidze

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 10:47:56