【发布时间】:2012-04-24 04:20:03
【问题描述】:
我似乎无法弄清楚这一点。我的程序编译并运行成功,但只有在调试过程中,它才会在关闭程序时弹出一个消息框,提示“指针操作无效”。我煞费苦心地检查了所有 FormCloseQuery 和 FormDestory 事件是否有任何语法或逻辑错误。我没有找到,它们按预期执行,没有任何错误。
当我告诉编译器在 Invalid Pointer Operation 错误时中断时,它什么也不做,只是挂起程序。此时,我不得不终止或终止该进程。
你是怎么解决这个问题的?
提前致谢,
【问题讨论】:
-
启用调试 DCU 并逐步关闭,直到找到触发此错误的原因。您是否在完全调试模式下使用 FastMM 运行?
-
@DavidHeffernan, :) 我记得我们曾讨论过 FastMM。不幸的是,我没有使用过 FastMM,因为我在回来时测试过它。我将启用 DCU,看看会发生什么。
-
@DavidHeffernan,在启用 dcu 中断后,调试器在 System.pas 文件中停止。有点混乱,但我认为这是梅森惠勒的原因之一。我想现在我得把 FastMM 放回去了。
-
设置一些堆栈跟踪器并可能转一圈“使用调试 DCU” 看起来您有一些您尝试释放两次的杂散指针。 stackoverflow.com/questions/3631987stackoverflow.com/questions/12505251stackoverflow.com/questions/2237028
-
如果您“没有找到”,那么您需要更加努力地寻找,因为显然您的程序存在问题。
标签: delphi debugging exception delphi-xe