0

加载核心转储文件时,有什么方法可以在 gdb 中显示局部变量状态?

我将核心转储文件加载到 gdb 并切换到某个帧(命令:frame #),但我不确定是否可以在不实际运行的情况下捕获变量值。

一些背景,调试一些导致段错误并且很难重新创建的竞争条件。在 gdb 中运行无助于重现太多。所以我最好的机会是以某种方式根据我目前拥有的核心文件找出哪些变量状态。

4

1 回答 1

1

如果有人在寻找答案,这总是对我有用。

移动到特定帧p,后跟变量名

例子:

(gdb) frame 6 
#6  0x080f613d in add (add=0x8e5ae40) at main.c:6128**
6128            INSIST((error == 0) || (error == ENOENT));
(gdb) p error
$15 = 22
(gdb)

希望这可以帮助!

于 2014-01-22T05:43:16.270 回答