14

当我运行我的程序时(诚然,它是在调试模式下构建的),我收到一个错误“外部异常 80000003”。

根据Win32 Exception/Access Violation Errors这意味着0x80000003 EXCEPTION_BREAKPOINT A breakpoint was encountered.

但是,IDE 中没有设置断点,我在 IDE 之外运行它。

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

我如何让它消失(在调试模式下构建)?


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

4

1 回答 1

10

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

当我拥有这个时,几乎总是当我的代码跳入某个数据空间时。我几乎总是这样说,因为我偶尔也会在调试一些噩梦时意外地将断点硬编码到代码中(!)。

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

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

于 2012-08-13T03:56:29.143 回答