VS2013,C++:未知的“线程 X 以代码 0 退出”

Posted

技术标签:

【中文标题】VS2013,C++:未知的“线程 X 以代码 0 退出”【英文标题】:VS2013, C++: Unknown "thread X exited with code 0" 【发布时间】:2015-07-05 21:16:44 【问题描述】:

我正在 VS2013 上开发一些 Qt 应用程序。有一天,我注意到 Qt 运行时库执行奇怪的 CPU 消耗操作这一事实。首先,我决定它只出现在 Qt 调试库中,并将我的调试配置转为使用 Qt 发布库。但是在调试我的应用程序的过程中,在 VS 输出窗口中观察时,我仍然感到困惑,例如打印:The thread 0xXXXX has exited with code 0 (0x0)。我不明白哪个线程完成了。一旦这个线程已经完成,我如何检测隐藏在这个线程 ID = 0xXXXX 后面的线程?

更新(澄清) 在我的问题中,我的意思是: 1. 是否有可能获取一些关于某个线程 ID 的信息出现在 这样的 VS 打印 2. 有人知道 Qt 可能在这些隐藏线程中执行什么吗?

【问题讨论】:

【参考方案1】:

不同的库可能会为不同的目的创建工作线程。

如果您想进一步调查此问题,请在 VS IDE 中执行以下操作:

    调试 -> 全部中断。这将停止进程中的所有线程 Debug -> Windows -> Threads 获取所有线程的列表。

通过检查线程的调用堆栈,您可能会了解其用途。

【讨论】:

这是常见的答案,我知道如何调试进程。我的问题是 a) 是否有可能获得有关出现在此类 VS 打印中的线程 ID 的一些信息 b) 有人知道 Qt 可能在此类隐藏线程中执行什么... @Sergey 也许你应该编辑你的问题并添加它。 @Sergey 正如我上面所说:您可以检查线程的调用堆栈以了解它们在做什么。但我认为它不会对你有所帮助——这只是 Qt 内部实现的细节——不受你的影响。

以上是关于VS2013,C++:未知的“线程 X 以代码 0 退出”的主要内容,如果未能解决你的问题,请参考以下文章

将 C++ ATL 可执行应用程序从 VS2003 迁移到 VS2013

C++ 代码在 VS2010 中工作,但在 2013 年不工作

无法在 VS 2013 社区中创建 C++ 项目

在 VS 2013 中使用空格键提交 C++ Intellisense 建议

静态库链接、c++、VS Express 2013

VS2013编写了个c++的dll动态库,怎么填写文件说明,版本,版权这些信息