调试gdb中的核心转储文件



加载核心转储文件时,有没有任何方法可以显示gdb中的局部变量状态?

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

一些背景,调试一些导致seg故障并且很难重新创建的竞争条件。在gdb中运行对复制没有太大帮助。因此,我最好的机会是根据我目前拥有的核心文件,找出哪些变量状态。

如果有人在寻找答案,这对我来说总是有效的。

移动到特定帧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)

希望这能有所帮助!

最新更新