- 主题:请教,多个线程如何快速定位哪个线程崩溃
可以给线程起名字。gdb能看到线程名字。
【 在 wishie (抗击时间) 的大作中提到: 】
: 使用std::thread创建了多个线程,不确定运行中哪个线程运行错误,请问有什么有效的方法能够快速定位,谢谢
--
FROM 124.207.9.*
一行代码就可以了。
Linux是 pthread_setname_np 函数,Windows应该也有类似的。
【 在 wishie (抗击时间) 的大作中提到: 】
: 是的,我这是这么想的,用qt写代码的时候用过,但到了c++11 std::thread 这不太会了
--
FROM 124.207.9.*
可以的。写在std::thread绑定的函数体里面即可。
【 在 wishie (抗击时间) 的大作中提到: 】
: 请问用std::thread()创建的线程也能这么命名吗,我没找到使用的方式
--
FROM 124.207.9.*
pthread_setname_np(pthread_self(), name.substr(0, 15).c_str());
【 在 wishie (抗击时间) 的大作中提到: 】
: 您的意思是在线程函数中用std::thread::native_handle() 和 pthread_setname_np()配合使用吗
--
FROM 124.207.9.*