strace跟蹤線程調用


方法一:
strace -fp pid , 可以跟蹤所有線程, 進程的系統調用。

  1. [root@xxxx]strace -p 24091
  2. Process xxx attached - interrupt to quit
  3. [ Process PID=24091 runs in 32 bit mode. ]
  4. futex(0xc5bbbd8, FUTEX_WAIT, 24215 NULL
復制代碼

你的問題不是strace不能跟蹤,而是你的線程鎖住了。 futex應該是內核里對pthread_mutex_lock實現的一個函數。

方法二(本質同方法一,但更明了):
pstree -p pid 可以查看多線程程序的進程樹。
在針對各個線程,逐個的strace -p pid

最后
man pstack
pstack - print a stack trace of a running process
相當於gdb內的bt,打出棧信息。

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM