如何在exception中使VC ++的调试器中断?

我正在尝试调试用C编写的DLL中的问题,该问题一直导致访问冲突。 我正在使用Visual C ++ 2008,但代码是直的C.

我已经习惯了Delphi,如果在调试器下运行时发生exception,程序将立即断开调试器,它将为您提供检查程序状态的机会。 但是,在Visual C ++中,我得到的只是Output选项卡中的一条消息:

First-chance exception at blah blah blah: Access violation reading location 0x04410000. 没有rest,没有。 它只是进入并展开堆栈,直到它回到我的Delphi EXE中,它识别出错误并在那里提醒我,但到那时我已经失去了几层调用堆栈,我不知道发生了什么。

我已经尝试了其他的调试技术,但无论它在做什么,都是在C宏中的嵌套循环内深处进行的,这个循环被调用超过500次,这只是我的技能(或者我的耐心)来追踪。

我认为必须有一些方法来获得“第一次机会”的例外,实际上让我有机会处理它。 可能有一些“在第一次机会exception时立即中断”配置设置我不知道,但它似乎并不是所有可发现的。

有谁知道它在哪里以及如何启用它?

Debug菜单中,选择Exceptions并选中您希望调试器中断的exception框。 “访问冲突”位于“Win32例外”下。

您还可以使用“在…处的第一次机会exception”行中指定的地址创建数据断点。

继詹姆斯回答之后,您正在寻找的例外情况位于Win32例外部分的下方。 你应该看到那里的访问冲突。