c++ - 覆盖 C++ 中的崩溃

标签 c++ error-handling segmentation-fault runtime-error

我的问题是:

有没有办法在程序发生崩溃时调用函数或做一些其他工作。

具体来说,我目前正在处理的代码在非常大的输入上给出了“段错误”。这意味着我在某个时候访问了一些不可用\未分配的内存部分。显示每个步骤太麻烦了,所以我想检测我何时越界。

那怎么可能呢?

最佳答案

如果您使用调试符号编译代码,您应该能够将核心文件加载到调试器中和/或在发生崩溃时附加调试器。

通常,您可以从崩溃的位置判断发生了什么。您是否取消引用空指针?您是否取消引用了无效指针?第二个比第一个更难调试(通常意味着内存损坏)。一个用于内存损坏的有用工具,特别是如果故障是可重复的,是放置“观察点”,这会导致调试器在特定内存位置(即导致崩溃的指针)发生变化时停止。这将使您能够看到是什么覆盖了您的指针。

关于c++ - 覆盖 C++ 中的崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29444986/

相关文章:

c++ - mpl序列和递归代码生成

C++ 转换/播放视频和图像

c++ - int * 和 enum * 之间如何转换?

error-handling - 当请求处理程序失败时,NServiceBus 6回调客户端永远不会获得回调

C编程: Segmentation fault (core dumped)

c++ - RichEdit 的 EM_AUTOURLDETECT 消息可识别链接,但我无法单击它

excel - VBA Excel 文件打开提示取消错误

android - Android Content View 尚未创建 fragment

c++ - 如何避免复制赋值运算符的双重释放或损坏(fasttop)?

python - 在Qt4上安装MayaVi会导致段错误