在VS 2013中调试C ++程序时,在抛出异常后,我在异常处理程序(catch块)中遇到崩溃(技术上是“断点”)。以下是在输出窗口发生之后:
Program.exe中0x75E54878处的第一次机会异常:Microsoft C ++异常:内存位置0x00C6EE24处的_com_error。
Program.exe中0x75E54878处的第一次机会异常:Microsoft C ++异常:内存位置0x00C6EF04处的ComException。
Program.exe中0x75E54878处的第一次机会异常:Microsoft C ++异常:[rethrow]在内存位置0x00000000。
HEAP [Program.exe]:HEAP:免费堆块00FAB5A8在00FAB5D4被解除后被修改
Program.exe触发了一个断点。
我调整了代码以找到原因,并确保它能够像显示消息框一样简单。类似的东西:
<img src="/img.jpg" />
<img src="/client/img.jpg" />
来自“输出”窗口的消息表明我正在尝试写入已释放/无效的内存,但正如您可以从此代码段中看到的那样情况并非如此 - 我甚至没有在崩溃时使用变量发生的情况。
另一个奇怪的事情是,在崩溃之后,“调用堆栈”窗口显示由于异常而已经解开的帧,就像调用堆栈被“重建”一样。
任何想法有什么不对?