【发布时间】:2023-03-28 14:19:01
【问题描述】:
我有几个关于核心转储的问题。我在 Windows 上有 gdb,使用 Cygwin。
核心转储文件的位置是什么?它是一个 .exe.stackdump 文件吗? (这是崩溃后生成的唯一文件)我在其他论坛上读到核心转储文件名为“核心”。但我没有看到任何名为“core”的文件。
打开和理解core dump文件的命令是什么?
【问题讨论】:
标签: c++ gdb cygwin segmentation-fault
我有几个关于核心转储的问题。我在 Windows 上有 gdb,使用 Cygwin。
核心转储文件的位置是什么?它是一个 .exe.stackdump 文件吗? (这是崩溃后生成的唯一文件)我在其他论坛上读到核心转储文件名为“核心”。但我没有看到任何名为“core”的文件。
打开和理解core dump文件的命令是什么?
【问题讨论】:
标签: c++ gdb cygwin segmentation-fault
您需要配置 Cygwin 以通过包含来生成核心转储
error_start=x:\path\to\dumper.exe
在您的CYGWIN 环境变量中(有关更多信息,请参阅“dumper”部分中的here)。如果你不这样做,你只会得到一个堆栈跟踪——不过,这也可以帮助你诊断问题。
按如下方式启动 gdb 以将其附加到核心转储文件:
gdb myexecutable --core=mycorefile
您现在可以使用常用的 gdb 命令来打印堆栈跟踪、检查变量的值等等。
【讨论】:
export 命令)。
CYGWIN=error_start=c:\cygwin\bin\dumper.exe。另请参阅mail-archive.com/cygwin@cygwin.com/msg77667.html 以获得更多建议。
a.exe.stackdump 文件。您还需要将其配置为创建cores(Martin 的回答涵盖了这一点)。【讨论】: