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

如何在GDB中根据栈地址查找对应的局部栈变量?

在GDB中根据栈地址查找局部符号的方法

单个栈地址匹配符号

直接使用info symbol命令定位地址对应的符号:

info symbol 0x12345678

如果该地址属于某个局部变量、函数参数或栈上的其他符号,GDB会直接返回符号名称及其所属的函数/栈帧信息。

查看单个栈帧的所有局部符号

先切换到目标栈帧(用frame <帧编号>,比如frame 0表示当前执行的栈帧),然后执行:

info locals

会列出当前栈帧内所有局部变量的名称、地址和值。加上-a参数可以显示更精确的内存范围:

info locals -a

方便你和GC输出的栈地址做精准匹配。

遍历整个调用栈的所有局部符号

要一次性查看所有栈帧的局部变量和参数,用完整回溯命令:

bt full

它会打印每个栈帧的调用信息,同时附带该帧内所有局部变量、参数的地址和值,你可以逐帧对比GC输出的栈地址范围,找到对应的符号。

补充:处理结构体成员类的地址

如果目标地址是某个结构体的成员地址,info symbol可能只会返回结构体变量本身,这时可以用ptype查看变量类型,再用x命令查看内存内容来确认具体成员:

ptype <结构体变量名>
x/4x 0x12345678

内容的提问来源于stack exchange,提问作者Steven Schveighoffer

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 10:12:05