在命名线程后附加调试器时,在Visual Studio线程窗口中不显示本机c ++线程名称

时间:2016-11-06 20:13:12

标签: c++ multithreading visual-studio winapi visual-studio-debugging

我们的应用程序遵循these instructions在Windows上的本机c ++中设置线程的名称。

如果在设置线程名称之前附加,则线程名称在visual studio的线程窗口中显示正常,但是如果在设置线程名称后附加,则只看到一些默认名称“msvcr120d.dll”。

有没有办法确保无论何时附加都会显示线程名称?

1 个答案:

答案 0 :(得分:3)

Windows操作系统中的线程对象没有名称。命名线程纯粹是调试器的一个特性。代码设置'线程的名称会引发调用程序捕获的MS_VC_EXCEPTION以及用于调试体验的信息。如果没有调试器,则异常过滤器将继续执行。

换句话说:您不能拥有命名线程,除非您按照How to: Set a Thread Name in Native Code 调用SetThreadName函数之前附加调试器