我正在尝试调试一个用C语言编写的DLL中出现的访问冲突问题。我正在使用Visual C++ 2008,但是代码是纯C。
我习惯了Delphi,在其中如果在调试器下运行时发生异常,程序会立即停止并进入调试器让你有机会检查程序状态。然而,在Visual C++ 中,我只能在输出选项卡中看到一条消息:
First-chance exception at blah blah blah: Access violation reading location 0x04410000.
没有任何中断,它只是沿着堆栈向后追溯,直到回到我的Delphi EXE文件,那里会发现有什么不对劲的东西,并提醒我,但此时我已经失去了几层调用堆栈,不知道到底发生了什么。
我尝试了其他调试技术,但它所做的事情都在一个嵌套的循环内部进行,这个循环是通过一个C宏被调用超过500次,而这已经超出了我的技能(或者说是耐心),无法跟踪。
我想必定有一种方法可以让“第一次机会”异常实际上给我一个“机会”来处理它。可能有一些“立即在第一次机会异常时中断”的配置设置,但它似乎并不容易发现。
有人知道在哪里以及如何启用它吗?