如何在Linux pthreads中设置线程的名称?
有什么办法可以在Linux中设置线程的名称?
我的主要目的是在调试时会有所帮助,并且如果通过例如暴露该名称也很好 /proc/$PID/task/$TID/...
回答:
将prctl(2)
功能与选项一起使用PR_SET_NAME
(请参阅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
以上是 如何在Linux pthreads中设置线程的名称? 的全部内容, 来源链接: utcz.com/qa/430289.html