当在线程命名后附加调试器时,本地c++线程名称不会显示在visual studio线程窗口中
native c++ thread name does not display in visual studio thread window when debugger is attached after the thread is named
我们的应用程序遵循以下指令在windows上使用本地c++设置线程名。
如果你在线程名设置之前附加线程名,那么在visual studio的线程窗口中可以很好地显示线程名,但是如果你在线程名设置之后附加线程名,那么你只会看到一些默认名称"msvcr120 .dll"。
是否有任何方法可以确保线程名称无论何时附加都将显示?
Windows操作系统中的线程对象没有名称。命名线程纯粹是调试器的一个特性。"设置"线程名称的代码会引发一个MS_VC_EXCEPTION
,由调试器捕获,并提供用于调试体验的信息。如果没有调试器,异常过滤器将继续执行。
换句话说:你不能有命名的线程,除非你在调用SetThreadName
函数之前附加一个调试器,参见如何:在本机代码中设置线程名称。
相关文章:
- 从不同线程使用int64的不同字节安全吗
- 主函数跳过线程并且不加入以显示所需的输出
- Apache 崩溃并显示错误 R6016 没有足够的空间来存储线程数据
- 如何在对话框编辑框中显示来自 UI 线程类 Run() 函数的字符串
- 在状态栏上显示来自不同线程中回调的消息
- C OPENCV图像在Boost线程中不显示
- 任务管理器显示的线程比我创建的线程多
- 显示Q对话框时出现QT线程问题
- 对于多线程应用程序中的显示任务,原子锁或互斥锁是必须的吗
- 线程和进程的示例来显示差异
- 尝试显示线程优先级时出现分段错误
- cv::imshow 在不同的线程上不显示 cv::mat 颜色
- 线程不刷新数据,在屏幕中显示数据时出错
- 为什么Visual Studio显示多个线程,即使我的MFC应用不是多线程的?
- 当在线程命名后附加调试器时,本地c++线程名称不会显示在visual studio线程窗口中
- 我如何在另一个线程Qt显示MessageBox
- 多线程:如何在wxthread中使显示图像的GUI线程和处理图像同步的工作线程无阻塞
- 来自回溯的堆栈跟踪未显示导致多线程环境下崩溃的方法
- 提升线程示例显示错误,它无法匹配调用"boost::线程::线程(<未解析的重载函数类型>)"的函数
- 如何从视频播放器的辅助线程在主窗口中显示