天天看點

strace指令用法詳解

Linux利器 strace

strace常用來跟蹤程序執行時的系統調用和所接收的信号。 在Linux世界,程序不能直接通路硬體裝置,當程序需要通路硬體裝置(比如讀取磁盤檔案,接收網絡資料等等)時,必須由使用者态模式切換至核心态模式,通過系統調用通路硬體裝置。strace可以跟蹤到一個程序産生的系統調用,包括參數,傳回值,執行消耗的時間。

strace使用參數

-p 跟蹤指定的程序

-f 跟蹤由fork子程序系統調用

-F 嘗試跟蹤vfork子程序系統調吸入,與-f同時出現時, vfork不被跟蹤

-o filename 預設strace将結果輸出到stdout。通過-o可以将輸出寫入到filename檔案中

-ff 常與-o選項一起使用,不同程序(子程序)産生的系統調用輸出到filename.PID檔案

-r 列印每一個系統調用的相對時間

-t 在輸出中的每一行前加上時間資訊。 -tt 時間确定到微秒級。還可以使用-ttt列印相對時間

-v 輸出所有系統調用。預設情況下,一些頻繁調用的系統調用不會輸出

-s 指定每一行輸出字元串的長度,預設是32。檔案名一直全部輸出

-c 統計每種系統調用所執行的時間,調用次數,出錯次數。

-e expr 輸出過濾器,通過表達式,可以過濾出掉你不想要輸出

 http://www.vimer.cn/2009/11/strace%E5%91%BD%E4%BB%A4%E7%94%A8%E6%B3%95%E8%AF%A6%E8%A7%A3.html

http://www.thegeekstuff.com/2011/11/strace-examples/ 推薦閱讀

繼續閱讀