對於多執行緒應用程式,如果能夠給每個執行緒命名,那麼除錯起來的便利是不言而喻的。
可以用prctl給程序內其它執行緒命名的介面,測試**如下:
#include
#include
#include
#include
void* pfunc(void *arg)
int main(void)
makefile:
.phony: all
all: thread
thread : thread.cpp
g++ -ggdb -wall -lpthread -o thread thread.cpp
clean:
rm -f thread *.swp
看thread程序,但是還看不到執行緒資訊
beauty@linux-gznp:~/code/test> ps aux | grep thread | grep beauty | grep -v grep
beauty 8364 0.0 0.3 10872 904 pts/2 sl 03:24 0:00 ./thread
再給ps加幾個引數就ok了。
ps -l -p `ps aux | grep thread | grep $user | grep -v grep | awk ''`
pid lwp tty time cmd
8364 8364 pts/2 00:00:00 thread
8364 8365 pts/2 00:00:00 xx
這裡的-l,也可以使用-t,只是打出的詳細資訊有點兒不同。具體如下:
-l show threads, possibly with lwp and nlwp columns
-t show threads, possibly with spid column
**:
用prctl給執行緒命名 原始碼實現
分類 linux 系統程式設計 對於多執行緒應用程式,如果能夠給每個執行緒命名,那麼除錯起來的便利是不言而喻的。可以用prctl給程序內其它執行緒命名的介面,測試 如下 include include include include void pfunc void arg int main void...
為執行緒命名 prctl
對於多執行緒應用程式,如果能夠給每個執行緒命名,那麼除錯起來的便利是不言而喻的。今天看lwn上的週報,看到有人正在給prctl新增給程序內其它執行緒命名的介面,並從中得知,給執行緒自身命名的介面已經存在,不由竊喜,遂寫下以下驗證 include include include void tmain ...
prctl 函式給執行緒命名
1.包含的標頭檔案為 sys prctl.h 2.函式用法 int 用法 prctl pr set name char name 3.pr set name表示給執行緒命名,第二個引數是程序名字串,長度至多16位元組 下面看使用示例 void c x threadcyclefunc void uns...