在命名线程后附加调试器时,本机 C++ 线程名称不会显示在 visual studio 线程 window 中
native c++ thread name does not display in visual studio thread window when debugger is attached after the thread is named
我们的应用程序遵循 these instructions 在 windows 上设置原生 c++ 中的线程名称。
如果您在设置线程名称之前附加,线程名称在 visual studio 的线程 window 中显示正常,但是如果您在设置线程名称之后附加,那么您只会看到一些默认值姓名 "msvcr120d.dll".
有什么方法可以确保无论何时附加线程名称都会显示?
WindowsOS 中的线程对象没有名称。命名线程纯粹是调试器的一个特性。 'set' 线程名称的代码引发了一个 MS_VC_EXCEPTION
,它被调试器捕获,以及用于调试体验的信息。如果不存在调试器,异常过滤器将继续执行。
换句话说:你不能命名线程,除非你在之前调用SetThreadName
函数按照How to: Set a Thread Name in Native Code附加调试器。
我们的应用程序遵循 these instructions 在 windows 上设置原生 c++ 中的线程名称。
如果您在设置线程名称之前附加,线程名称在 visual studio 的线程 window 中显示正常,但是如果您在设置线程名称之后附加,那么您只会看到一些默认值姓名 "msvcr120d.dll".
有什么方法可以确保无论何时附加线程名称都会显示?
WindowsOS 中的线程对象没有名称。命名线程纯粹是调试器的一个特性。 'set' 线程名称的代码引发了一个 MS_VC_EXCEPTION
,它被调试器捕获,以及用于调试体验的信息。如果不存在调试器,异常过滤器将继续执行。
换句话说:你不能命名线程,除非你在之前调用SetThreadName
函数按照How to: Set a Thread Name in Native Code附加调试器。