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 年不工作