关于核心转储,我有几个问题。我在Windows上使用Cygwin的gdb。
核心转储文件的位置在哪里?是a.exe.stackdump文件吗?(这是崩溃后唯一生成的文件)我在其他论坛上读到,核心转储文件的名称为“core”。但我没有看到任何名为“core”的文件。
打开和理解核心转储文件的命令是什么?
关于核心转储,我有几个问题。我在Windows上使用Cygwin的gdb。
核心转储文件的位置在哪里?是a.exe.stackdump文件吗?(这是崩溃后唯一生成的文件)我在其他论坛上读到,核心转储文件的名称为“core”。但我没有看到任何名为“core”的文件。
打开和理解核心转储文件的命令是什么?
你需要配置Cygwin以生成核心转储文件,方法是将
error_start=x:\path\to\dumper.exe
包含在您的CYGWIN
环境变量中(有关更多信息,请参见此处的“dumper”一节)。如果您没有这样做,则只会获得堆栈跟踪--这也可能帮助您诊断问题。
如下所示启动gdb以将其附加到核心转储文件:
gdb myexecutable --core=mycorefile
现在,您可以使用通常的gdb命令打印堆栈跟踪,检查变量值等。
a.exe.stackdump
文件。您需要配置它也创建core
文件(Martin的答案涵盖了这一点)。
CYGWIN=error_start=c:\cygwin\bin\dumper.exe
。更多建议请参见http://www.mail-archive.com/cygwin@cygwin.com/msg77667.html。 - Martin Bexport
时,需要引用反斜杠:export CYGWIN='error_start=C:\Opt\Cygwin\bin\dumper.exe'
。 - Lumi