如何知道谁是给定线程ID的父线程

时间:2014-01-06 12:31:06

标签: c++ multithreading visual-studio debugging

我正在调试vs 2008中的程序。 有一个带有线程ID的线程列表。 我可以使用任何方式或工具来识别给定线程ID的父线程吗? 感谢。

4 个答案:

答案 0 :(得分:1)

没有API,至少是标准的和记录的,以获取给定线程的创建者线程ID。性能监视器,Visual Studio IDE,Process Explorer和Spy ++都不提供此信息。一旦启动,线程不再依赖于其创建者并独立运行;特别是没有亲子关系。

答案 1 :(得分:1)

我不认为你能做到这一点,但我不能给你很好的解释原因。从来没有听说过它。我查看了Process Explorer,它只能给你起始地址,但我怀疑你可以从中推断出父线程ID。

如果你需要在你的应用程序中执行此操作,那么实现它应该不是很困难,也许甚至可以挂钩系统函数来做到这一点,但是如果SysInternals没有这样做那么可能这是不可能的。

答案 2 :(得分:0)

我认为Spy ++(它叫做spyxx.exe,位于我的机器上的C:\ Program Files(x86)\ Microsoft Visual Studio 9.0 \ Common7 \ Tools)会提供这样的信息,但这很难,但我确定sys内部做了更好的过程信息版本

答案 3 :(得分:0)

您在寻找程序化方式还是外部工具? 如果是后者,请尝试使用processExplorer。你可以从MS免费下载它,它会为你提供线程线程层次结构以及许多其他很酷的东西。

相关问题