有没有办法在Linux中设置线程的名称?
我的主要目的是,它在调试时会很有帮助,而且如果通过例如/proc/$PID/task/$TID/...
公开这个名称也很好
有没有办法在Linux中设置线程的名称?
我的主要目的是,它在调试时会很有帮助,而且如果通过例如/proc/$PID/task/$TID/...
公开这个名称也很好
将prctl(2)
功能与选项PR_SET_NAME
一起使用(参见the docs).
请注意,旧版本的文档有点令人困惑.他们说
设置调用进程的进程名称
但是由于线程在Linux上是轻量级进程(LWP),因此在本例中一个线程就是一个进程.
您可以看到带有ps -o cmd
或以下的线程名称:
cat /proc/$PID/task/$TID/comm
或介于cat /proc/$PID/task/$TID/stat
的()
之间:
4223 (kjournald) S 1 1 1 0...
或者从GDB info threads
的双引号中:
* 1 Thread 0x7ffff7fc7700 (LWP 6575) "kjournald" 0x00007ffff78bc30d in nanosleep () at ../sysdeps/unix/syscall-template.S:84