Visual studio 如何在程序停止前使Visual Studio中断? >,我在VisualStudio 2008中尝试调试这个多线程C++程序。

Visual studio 如何在程序停止前使Visual Studio中断? >,我在VisualStudio 2008中尝试调试这个多线程C++程序。,visual-studio,debugging,Visual Studio,Debugging,有时(通常在一到两个小时的随机计算之后),程序停止,在调试窗口中写入后退出调试模式: The thread 'Win32 Thread' (0x1560) has exited with code 3 (0x3). The thread 'Win32 Thread' (0x5fc) has exited with code 3 (0x3). ... 对于所有涉及的线程,依此类推 AFAIK退出代码3表示某个故障,我希望VS截获该异常并在其上中断,以便我可以尝试查看是什么错误以及是什么导致了它

有时(通常在一到两个小时的随机计算之后),程序停止,在调试窗口中写入后退出调试模式:

The thread 'Win32 Thread' (0x1560) has exited with code 3 (0x3).
The thread 'Win32 Thread' (0x5fc) has exited with code 3 (0x3).
...
对于所有涉及的线程,依此类推

AFAIK退出代码3表示某个故障,我希望VS截获该异常并在其上中断,以便我可以尝试查看是什么错误以及是什么导致了它

我试图激活VisualStudio调试菜单中的所有异常捕获,但它没有改变任何东西


当异常退出发生时,有没有办法告诉VS我想休息一下?

我的猜测:您遇到了断言失败,CRT无法创建消息窗口(出于某种原因)。这将导致一个退出(3)呼叫。我不确定这是否会用退出代码杀死所有线程。一旦出现问题,您的所有线程都可能以相同的方式失败


尝试在程序的开头添加一个调用,以强制将断言失败消息发送到调试器的输出窗口。然后,在一系列线程退出消息之前,您应该在“调试输出”窗口中看到断言失败的详细信息。

看来您是对的,断言是在不同的线程中命中的。我终于摆脱了这个bug,谢谢:)我有一个,但在发布模式下无法解决。在调试模式下运行时,在连接了调试器的情况下,结果只是一个简单的空指针解引用,但不知何故,在未连接调试器的情况下,它被报告为异常。