当我运行我的程序时(诚然,它是在调试模式下构建的),我收到错误“外部异常80000003”。
根据Win32 Exception/Access Violation Errors,这意味着0x80000003 EXCEPTION_BREAKPOINT A breakpoint was encountered.
但是,IDE中没有设置断点,我在IDE之外运行它。
是的,我有正确的可执行文件。我删除了所有断点,清理了我的项目并重新构建了它,但仍然是那个对话框。我甚至删除了.exe,再次构建,看到它出现在预期的地方。验证.exe上的时间戳。我在FromCreate()中添加了一个消息框,并看到了,加上“外部异常80000003”。
如何让它消失(以调试模式构建)?
D'哦!!这是旧代码,我忘了我实际上已经在一个错误条件asm int 3 end;
编码了这个,当然,这标志着一个断点到IDE(或Windows,如果IDE没有运行,因此错误框)。为浪费时间而道歉。
答案 0 :(得分:9)
断点本质上是一个机器级指令(操作码?),它导致CPU处理暂停并引发异常类型信号。这通常由操作系统选取,然后用于某些用户进程,如调试器或simillar。
当我有这个时,几乎总是我的代码跳进了一些数据空间。我几乎总是这么说,因为我偶尔也会在调试一些噩梦时将断点硬编码成代码(!)。
编辑:正如@Ken White所说int3(断点中断)是我用来硬编码的那个: - )
我要做的第一件事就是获得堆栈跟踪并使用后备词。