strace命令用法
調用:
strace [ -dffhiqrtttTvxx ] [ -acolumn ] [ -eexpr ] ...
[ -ofile ] [ -ppid ] ... [ -sstrsize ] [ -uusername ] [ command [ arg ... ] ]
功能:
跟蹤程式執行時的系統調用和所接收的信號.通常的用法是strace執行一直到commande結束.
並且將所調用的系統調用的名稱、參數和返回值輸出到標準輸出或者輸出到-o指定的文件.
strace是一個功能強大的調試,分析診斷工具.你將發現他是一個極好的幫手在你要調試一個無法看到源碼或者源碼無法在編譯的程序.
你將輕鬆的學習到一個軟件是如何通過系統調用來實現他的功能的.而且作爲一個程序設計師,你可以瞭解到在用戶態和內核態是如何通過系統調用和信號來實現程序的功能的.
strace的每一行輸出包括系統調用名稱,然後是參數和返回值.這個例子:
strace cat /dev/null
他的輸出會有:
open(\\"/dev/null\\",O_RDONLY) = 3
有錯誤產生時,一般會返回-1.所以會有錯誤標誌和描述:
open(\\"/foor/bar\\",)_RDONLY) = -1 ENOENT (no such file or directory)
在我們的web服務器中,如果有php進程佔用cpu很高,就可以通過strace -p 進程ID來查看並解決問題。