我正在尝试调试用 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 次,这超出了我的技能(或我的耐心)来追踪。
我认为必须有某种方法来获得“第一次机会”异常,才能真正给我一个“机会”来处理它。可能有一些我不知道的“在第一次机会异常时立即中断”配置设置,但它似乎并不是那么容易被发现。
有谁知道它在哪里以及如何启用它?