如何在 C++ 中获取有关崩溃程序的一些信息以供将来调试

1 c++ debugging error-logging c++11 c++14

我想知道当程序在 C++ 中崩溃时,有什么方法可以捕获一些信息。此信息可用于开发人员将来的调试。例如,此信息提供了我的程序在哪一行代码和哪个函数中崩溃,或者最好是为什么崩溃。

Tho*_*ler 6

这个概念在 Windows 上称为故障转储或在 Linux上称为核心转储。它不是 C++ 的特性,而是操作系统的特性。它适用于编译为本地汇编程序指令的代码(C++ 通常就是这种情况)。

会保存崩溃时程序崩溃时的状态,可以查看调用栈、内存、寄存器等信息。信息量可以配置。然后在调试器的帮助下完成分析,例如Windows 上的

对于行号,请注意与二进制文件一起构建符号。对于分析,您需要将故障转储与正确的符号放在一起以获得行号。