如何调试只在应用程序关机时发生的崩溃? (DELPHI)

前端之家收集整理的这篇文章主要介绍了如何调试只在应用程序关机时发生的崩溃? (DELPHI)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
所以,在最近的一些变化之后,我们发现我们最古老的应用程序之一有时会关闭.这表现为“运行时错误216”消息的形式或者来自 Windows错误报告的应用程序已停止工作的消息.应用程序已经在每一回合发出OutputDebugString消息,并且AFAICT我们所有的代码都被正确执行完成.所有析构函数都被调用为所有最终化部分和类析构函数,它们都不会引发任何异常.

此外,madExcept和FastMM4的完全调试模式似乎都没有什么可以抱怨的(尽管这可能是一个错误的结论,因为即使在组件自己的最终化代码运行之前,崩溃也可能会发生).

那么,你会怎么做?你从哪里开始?

这个问题应该更多的是关于这类问题的一般方法,而不是我目前面临的具体实例,所以我故意省略细节.随意询问您是否认为它们可能与调试方法的选择有关,稍后会添加它们.

解决方法

运行时错误216意味着您有Av(访问冲突),SysUtils已经停止将这些错误转换为异常.

首先尝试:使用调试DCU构建并查看单元系统中出现错误的位置,在那里设置断点.希望你可以在调试器中抓住它,并在那里工作.

你可能有一个内存错误(悬挂的指针,空引用等)在一个已经完成的单元中使用s字符串常量),最好的方法是在sysutils完成之后检查最终确定.您可以通过构建WITH debug dcu来实现此目的,将断点设置为sysutils中的最终化,并开始逐步执​​行代码,直到发生错误.

猜你在找的Delphi相关文章