因此,在最近的一些更改之后,我们发现我们最古老的应用程序之一有时会在关机时崩溃。这表现为“运行时错误 216”消息或来自 Windows 错误报告的应用程序已停止工作的消息。该应用程序已经OutputDebugString
在每一个转折点都发出 -messages 并且 AFAICT 我们自己的所有代码都会正确执行到完成。所有的析构函数都像所有终结部分和类析构函数一样被调用,它们都没有引发任何异常。
此外,madExcept 和 FastMM4 的完全调试模式似乎都没有什么可抱怨的(尽管这可能是一个错误的结论,因为崩溃可能发生在这些组件自己的最终代码运行之前)。
那么,你会怎么做?你会从哪里开始?
这个问题应该更多地是关于这类问题的一般方法,而不是关于我目前面临的具体实例,所以我故意省略了细节。随意询问您是否认为它们可能与调试方法的选择有关,我稍后会添加它们。