加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

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

发布时间:2020-12-15 10:08:15 所属栏目:大数据 来源:网络整理
导读:所以,在最近的一些变化之后,我们发现我们最古老的应用程序之一有时会关闭.这表现为“运行时错误216”消息的形式或者来自 Windows错误报告的应用程序已停止工作的消息.应用程序已经在每一回合发出OutputDebugString消息,并且AFAICT我们所有的代码都被正确执行
所以,在最近的一些变化之后,我们发现我们最古老的应用程序之一有时会关闭.这表现为“运行时错误216”消息的形式或者来自 Windows错误报告的应用程序已停止工作的消息.应用程序已经在每一回合发出OutputDebugString消息,并且AFAICT我们所有的代码都被正确执行完成.所有析构函数都被调用为所有最终化部分和类析构函数,它们都不会引发任何异常.

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

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

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

解决方法

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

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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读