当我运行程序时(公认的是,它是在 Debug模式下构建的),我得到一个错误“外部异常80000003”。

根据Win32 Exception/Access Violation Errors的意思是0x80000003 EXCEPTION_BREAKPOINT A breakpoint was encountered.
但是,IDE中没有设置断点,我正在IDE外部运行它。

是的,我有正确的可执行文件。我删除了所有断点,清理了我的项目,然后重新构建它,但仍然是该对话框。我什至删除了.exe,然后再次构建它,看到它出现在预期的位置。在.exe上验证了时间戳。我在FromCreate()中添加了一个消息框,并看到了“External exception 80000003”(外部异常80000003)。

我如何使它消失(以 Debug模式构建)?

D'哦!那是旧的代码,我忘记了我实际上是在一个错误条件asm int 3 end;中对此进行编码的,它当然会向IDE(或Windows,如果IDE未运行,因此会出现错误框)发出断点信号。抱歉浪费时间。

最佳答案

断点本质上是一种机器级指令(操作码?),它导致CPU处理暂停并引发异常类型信号。通常,这是由OS拾取的,然后进入诸如调试器或类似程序之类的某些用户进程。

当我遇到这个问题时,几乎总是在我的代码跳入某些数据空间的时候。我几乎总是说,因为我偶尔也会在调试某些噩梦时将断点硬编码为代码(!)。

编辑:正如@Ken White所说的,int 3(断点中断)是我以前用来硬编码的一个:-)

我要做的第一件事是获取堆栈跟踪和工作后备地址。

关于delphi - 如何摆脱异常80000003?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11927877/

10-10 23:24