为什么程序独立运行的错误在Delphi的调试环境下无法检测出来?(300分)

  • 主题发起人 主题发起人 ow
  • 开始时间 开始时间
O

ow

Unregistered / Unconfirmed
GUEST, unregistred user!
我的程序单独运行时会有Access Violation的错误,但是在Delphi环境中运行(
选中所有Debug选项,去掉Optimize)却无法捕捉到这些错误呢?
象我程序中有一个错误是:
; ; FTimer := nil; // FTimer是一个TTimer的实例。
; ; ....
; ; FTimer.Free;
后来我自己发现改正了,但在Delphi环境里怎么也检测不出来。请问这是怎么回事?
我装了Bound Checker 6.5 for delphi,可是用它的Normal级检测,从来没有发现过
任何的错误?
 
1、在 IDE 中,Tools->Degugger Options->OS Exceptions->Handled by 和 On Resume
; ;试试两种选项。我的是 User Program 和 Run unhandled。
2、FTimer 实际是指针,设为 nil 只是取消了对实例的引用。也许是对象实例的 Owner
; 自动把对象 Free 掉了,而没有造成内存泄漏。
 
关于bbkxjy说的第二点,如果你创建此TIMER时,是FTimer := TTimer.Create(某个TComponent的后继对象);
确实有可能是如此。

如果还有其他问题,你可以将Project Options中你的设置全写出来,
看看我们能否帮你。
 
多人接受答案了。
 
后退
顶部