Who*_*ami 8 c linux gdb pthreads
我的应用程序中创建了许多线程.当我执行命令'info threads'时,某些线程名称在gdb中可见,其他线程名称不显示.如何获取所有线程名称本身而不是像0xb7fe1424这样的十六进制值
4 Thread 0xb68ffb70 (LWP 18377) 0xb7fe1424 in __kernel_vsyscall ()
* 3 Thread 0xb7291b70 (LWP 18375) JKMainT (arg=0x0) at mylib.cpp:482
2 Thread 0xb7a92b70 (LWP 18374) 0xb7fe1424 in __kernel_vsyscall ()
1 Thread 0xb7a94730 (LWP 18371) 0xb7fe1424 in __kernel_vsyscall ()
Run Code Online (Sandbox Code Playgroud)
您可以通过非标准POSIX api调用设置线程名称.GDB(和其他调试器)将显示这些名称.
在Linux上
// watch out, 16 char limit on the name
pthread_setname_np(pthread_self(), "My thread name");
Run Code Online (Sandbox Code Playgroud)
在Mac上
pthread_setname_np("My thread name");
Run Code Online (Sandbox Code Playgroud)