gpt4 book ai didi

delphi - 如何调试仅在应用程序关闭时发生的崩溃? (德尔福)

转载 作者:行者123 更新时间:2023-12-03 14:37:28 25 4
gpt4 key购买 nike

因此,经过最近的一些更改,我们发现我们最古老的应用程序之一有时会在关闭时崩溃。这会以“运行时错误 216”消息的形式或来自 Windows 错误报告的消息的形式表明应用程序已停止工作。该应用程序已经在每次发出 OutputDebugString 消息,并且我相信我们自己的所有代码都会正确执行直至完成。所有析构函数都像所有终结部分和类析构函数一样被调用,它们都不会引发任何异常。

此外,madExcept 和 FastMM4 的完全 Debug模式似乎都没有什么可提示的(尽管这可能是一个错误的结论,因为崩溃甚至可能在这些组件自己的最终代码运行之前发生)。

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

<小时/>

这个问题应该更多地涉及此类问题的一般方法,而不是我当前面临的具体实例,因此我故意省略了细节。请随意询问您是否认为它们可能与调试方法的选择相关,我稍后会添加它们。

最佳答案

运行时错误 216 意味着您遇到了 Av(访问冲突),并且 SysUtils 已经停止将这些错误转换为异常。

第一次尝试:使用调试 DCU 进行构建,并查看引发错误的单元系统,在那里设置断点。希望您可以在调试器中捕获它并从那里开始工作。

您可能有内存错误(悬空指针、空引用等在已最终确定的单元中使用 s 字符串常量),最好的技巧是在 sysutils 确定后检查最终确定。您可以通过使用调试 dcu 进行构建、将断点设置为 sysutils 中的终结点并开始单步执行代码直到发生错误来完成此操作。

关于delphi - 如何调试仅在应用程序关闭时发生的崩溃? (德尔福),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5181124/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com