c++ - 我可以通过操纵内存来使非常罕见的崩溃更有可能发生吗?

标签 c++ crash

我有一个由约 30k 行代码组成的程序。它由 30k 大小的几个不同的 .dll 文件组成。这都是我的代码,但其中一些是旧的,而且并非所有我的文档都是一流的。

最近进行更改后,发生了非常罕见的崩溃。在我有限的时间内,我无法重现崩溃。但是,然后,我会回到我的电脑,忘记了崩溃,我将运行该程序来查看我在哪里,采取行动,然后它就会崩溃。由于我没有通过 GDB 运行它,所以我不知道发生了什么。

这是一个在 Windows 上使用 MingW64 编译的 64 位应用程序。因此,据我所知,唯一可用的 JIT 调试器是 Dr Memory,它不适用于 64 位。

我确信崩溃与内存相关(不是总是如此),所以我想知道,是否可以操纵内存来使崩溃更有可能发生?

例如,如果我正在写入超过数组或其他内容的末尾,我可以在某处进行一些 new 调用,以使写入更有可能导致崩溃吗?

这种崩溃的情况非常罕见;我只见过这种情况发生两次,两次都是在我没有调试的情况下。

最佳答案

我建议在关键行向终端写入一些输出消息,以便您可以跟踪崩溃发生在哪一行。这比弄乱内存并可能导致不同来源的崩溃要简单得多。 还可以使用 try 和 catch block 并写出错误报告。

关于c++ - 我可以通过操纵内存来使非常罕见的崩溃更有可能发生吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37136646/

相关文章:

windows-phone-8 - 应用程序在模拟器上运行但在电话WP8上崩溃

c++ - 为什么没有 std::is_struct 类型特征?

c++ - 类与函数模板特化

c++ - 如何跨多个源文件声明和使用全局外部变量?

Android actionbarsherlock 应用程序在启动时崩溃 : Unable to resolve superclass

iphone - 加载某些网页时 UIWebview 崩溃

crash - Xcode 5开发人员预览在启动时崩溃

c++ - CMake 错误 : linker command failed with exit code 1 and cpp. o 文件

C++ 十六进制计算器乘法

scala - 在单独的执行上下文中运行断言的安全性