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

如何让GDB在回溯(backtrace)时自动展开参数显示实际值?

让GDB在栈回溯中直接展开参数的方法

嘿,这个问题我之前调试的时候也碰到过!GDB默认会把复杂类型的参数(比如你这里的src、to,看起来像是自定义类或者STL容器)显示成...,不过有几个简单的办法能让它直接在栈回溯里展开参数值,不用单独打印:

  • 全局永久生效的设置:
    在GDB里输入命令:

    set print frame-arguments all
    

    这个命令会让GDB在所有后续的栈回溯(bt)中,自动展开显示所有参数的实际值。如果想每次启动GDB都自动生效,可以把这条命令加到你的~/.gdbinit配置文件里。

  • 临时查看详细回溯:
    如果你不想修改全局设置,只是偶尔需要看一次详细的参数,直接用bt full命令就行:

    bt full
    

    这个命令不仅会显示栈帧的参数,还会列出每个栈帧里的局部变量,信息更全面,但如果栈层级比较多,输出可能会有点冗长。

  • 灵活调整显示范围:
    要是你只想展开标量类型的参数(比如int、指针),不想看复杂对象的冗长内容,可以用:

    set print frame-arguments scalar
    

    想回到默认的省略显示,就输入:

    set print frame-arguments none
    

举个例子,你设置完set print frame-arguments all之后再执行bt,应该就能看到src和to的具体值,而不是...了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 08:13:19