如何在程序停止之前使Visual Studio中断?

Lou*_*uen 9 debugging visual-studio

好的,我得到了这个多线程C++程序,我尝试在Visual Studio 2008中进行调试.

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

The thread 'Win32 Thread' (0x1560) has exited with code 3 (0x3).
The thread 'Win32 Thread' (0x5fc) has exited with code 3 (0x3).
...
Run Code Online (Sandbox Code Playgroud)

对于涉及的所有线程等等.

AFAIK退出代码3表示某事失败,我希望VS拦截异常并打破它,这样我就可以尝试查看错误是什么以及导致错误的原因.

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

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

Adr*_*thy 11

我的猜测:你遇到断言失败,CRT无法创建消息窗口(出于某种原因).这导致退出(3)呼叫.我不确定是否会使用该退出代码终止所有线程.一旦出现问题,也许所有线程都以相同的方式失败.

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