c++ - 使用 gdb 进行核心转储分析

标签 c++ gdb cygwin segmentation-fault

我有几个关于核心转储的问题。我在 Windows 上有 gdb,使用的是 Cygwin。

  1. 核心转储文件的位置是什么?它是一个.exe.stackdump 文件吗? (这是崩溃后唯一生成的文件)我在其他论坛上看到核心转储文件名为“core”。但是我没有看到任何名为“core”的文件。

  2. 打开和理解核心转储文件的命令是什么?

最佳答案

  1. 您需要通过包含来配置 Cygwin 以生成核心转储

    error_start=x:\path\to\dumper.exe

    在您的 CYGWIN 环境变量中(有关详细信息,请参阅“dumper”部分中的 here)。如果您不这样做,您将只会得到一个堆栈跟踪——不过这也可能有助于您诊断问题。

  2. 按如下方式启动 gdb 以将其附加到核心转储文件:

    gdb myexecutable --core=mycorefile

    您现在可以使用常用的 gdb 命令来打印堆栈跟踪、检查变量值等。

关于c++ - 使用 gdb 进行核心转储分析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2176299/

相关文章:

c++ - boost::信号2;没有添加信号槽的匹配函数

c - 无法使用 GDB 找到堆栈粉碎功能

c++ - 在 Eclipse 中编译 Cygwin 项目

cygwin - 我应该使用 Cygwin 安装哪些软件包,以使其既不臃肿又拥有我作为开发人员所需的一切?

cygwin - 帮助安装 CUDA,在 PATH 中找不到 cl.exe

c++ - Fscanf 未从文件的最后一行读取预期值 (C/C++)

c++ - 指针 vector 的复制构造函数

c++ - 只计算递增次数的输出迭代器?

python - 如何查看 SWIG 接口(interface)、TensorFlow 背后的 C++ 函数调用

c - 程序集 cmp 如何检查它比较的值?