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

标签 visual-studio debugging

好的,我得到了我尝试在Visual Studio 2008中调试的多线程C++程序。

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

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能够拦截该异常并对其进行破坏,因此我可以尝试查看是什么错误以及引起该错误的原因。

我试图在Visual Studio的“调试”菜单中激活所有捕获异常的功能,但它没有做任何更改。

有没有办法告诉VS我想在发生这种正常退出时休息一下?

最佳答案

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

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

关于visual-studio - 如何在程序停止之前使Visual Studio中断?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7416620/

相关文章:

c++ - 关于C中的任务递归(Visual Studio 15)

node.js - Cordova + Visual Studio 2015 edge.node 错误

debugging - Paypal - 如何在本地调试 IPN?

c - 如何使用 Visual Studio 2008 重新初始化静态 C 库中的所有全局变量?

.net - 用于快速测试代码片段的 Visual Studio 加载项

visual-studio - 如何将 ILMerge 集成到 Visual Studio 构建过程中以合并程序集?

c# - VS2010中的调试问题

c# - WPF C# 应用程序部署 - 运行 exe 时没有任何反应

debugging - 使用 gdb 和 gdbserver 远程设置断点

c++ - 拒绝访问注册表