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

Mas*_*ler 13 c debugging exception visual-c++-2008 visual-c++

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

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

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

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

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

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

Jam*_*lis 17

Debug菜单中,选择Exceptions并选中您希望调试器中断的异常框."访问冲突"位于"Win32异常"下.

  • 看起来在 MSVC 2015 中,这已移至隐藏在 Debug > Windows > Exception Settings 下。我花了很长时间才找到它! (2认同)