在gdb中调试核心转储文件

在gdb中调试核心转储文件,gdb,Gdb,当加载核心转储文件时,有没有办法在gdb中显示局部变量状态 我将一个核心转储文件加载到gdb并切换到某个帧(命令:frame#),但我不确定是否可以在不实际运行的情况下捕获变量值 一些背景,调试一些导致seg故障且很难重新创建的竞争条件。在gdb中运行并不能帮助复制太多内容。因此,我最好的机会是根据我目前拥有的核心文件找出哪些变量状态。如果有人在寻找答案,这对我来说总是有效的 移动到特定帧p,后跟变量名 例如: (gdb) frame 6 #6 0x080f613d in add (add=

当加载核心转储文件时,有没有办法在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)

希望这有帮助

信息本地人应该这样做。仅供参考。。。当我试着在这种情况下打印时,gdb抱怨程序没有运行。有可能你安装了一台写得很差的漂亮打印机,在打印过程中,它发出的声音很差。在使用“信息本地人”之前,请尝试禁用漂亮的打印机