我可以通过操纵记忆来更容易发生非常罕见的崩溃吗?

时间:2016-05-10 11:02:32

标签: c++ crash

我有一个包含~30k行代码的程序。它由30k中的几个不同的.dll文件组成。这是我的所有代码,但有些代码很旧,而不是我的所有文档都是一流的。

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

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

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

例如,如果我正在写一个数组的末尾或其他东西,我可以在某个地方进行一些new调用,以使写入更可能导致崩溃吗?

这种崩溃非常罕见;我只看到它发生了两次,这两次我没有调试。

1 个答案:

答案 0 :(得分:0)

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