【问题标题】:Can gdb print the history of a global variable?gdb 可以打印全局变量的历史吗?
【发布时间】:2020-10-16 07:43:09
【问题描述】:

我正在使用 gdb 检查核心转储,并试图找出全局值从 0 更改为 1 的原因。 有没有办法用 gdb 获取全局值的历史? 欢迎任何建议。 谢谢。

【问题讨论】:

    标签: gdb coredump


    【解决方案1】:

    我正在使用 gdb 检查核心转储...有没有办法使用 gdb 获取全局值的历史记录?

    显然不是:GDB 不是时间机器,core 只包含全局崩溃时的值。

    也就是说,如果您可以重现崩溃,那么您可以使用 GDB watchpoint 在值更改时让 GDB 停止。

    【讨论】:

      【解决方案2】:

      不,核心转储只有进程异常终止时的内存转储。进程本身不记录其变量的任何历史记录。另一方面,您可以使用gdb record and replay 调试实时进程。通过记录和回放,您可以反向执行程序,从而查看全局变量的历史记录。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-05-13
        • 1970-01-01
        • 2011-09-09
        • 2017-04-26
        • 1970-01-01
        • 2015-11-29
        • 1970-01-01
        • 2011-02-17
        相关资源
        最近更新 更多