【发布时间】:2020-10-16 07:43:09
【问题描述】:
我正在使用 gdb 检查核心转储,并试图找出全局值从 0 更改为 1 的原因。 有没有办法用 gdb 获取全局值的历史? 欢迎任何建议。 谢谢。
【问题讨论】:
我正在使用 gdb 检查核心转储,并试图找出全局值从 0 更改为 1 的原因。 有没有办法用 gdb 获取全局值的历史? 欢迎任何建议。 谢谢。
【问题讨论】:
我正在使用 gdb 检查核心转储...有没有办法使用 gdb 获取全局值的历史记录?
显然不是:GDB 不是时间机器,core 只包含全局崩溃时的值。
也就是说,如果您可以重现崩溃,那么您可以使用 GDB watchpoint 在值更改时让 GDB 停止。
【讨论】:
不,核心转储只有进程异常终止时的内存转储。进程本身不记录其变量的任何历史记录。另一方面,您可以使用gdb record and replay 调试实时进程。通过记录和回放,您可以反向执行程序,从而查看全局变量的历史记录。
【讨论】: