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

如何设置GDB监视内存地址时打印回溯而非中断程序?

在GDB中设置自动打印回溯的写监视断点

当然可以实现,核心是给watch断点绑定自动执行的命令序列,具体步骤如下:

  • 首先设置针对目标内存地址的写监视断点:
    如果你要监视的是具体内存地址(比如0x12345678),执行:

    watch *0x12345678
    

    如果是某个变量(比如global_var),直接执行:

    watch global_var
    

    GDB会返回该断点的编号(比如Watchpoint 2),记下来这个编号。

  • 接着给这个断点绑定触发后的自动命令:
    执行commands 断点编号(比如断点编号是2就用commands 2),然后输入要自动执行的命令:

    commands 2
    bt  # 打印完整栈回溯
    # 如果你只想打印前N层栈帧,可以改成 bt N,比如 bt 5
    continue  # 自动继续执行程序
    end
    

这样设置后,当目标地址被写入时,GDB会自动打印当前的调用栈回溯,然后立刻继续程序执行,不会中断到命令行等待手动输入。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 08:40:47