strace常用引數:
-c 統計每種系統呼叫執行的時間、呼叫次數、出錯次數,程式退出時給出報告
-p pid 跟蹤指定的程序,可以使用多個-p同時跟蹤多個程序
-o filename strace預設輸出到stdout,-o可以將輸出寫入到指定的檔案
-f 跟蹤由fork產生的子程序的系統呼叫
-ff 常與-o選項一起使用,不同程序(子程序)產生的系統呼叫輸出到各個filename.pid檔案中
-f 嘗試跟蹤vfork子程序系統呼叫,注意:與-f同時使用時, vfork不被跟蹤
-e expr 輸出過濾表示式,可以過濾掉不想輸出的strace結果
-e trace=set 指定跟蹤set中的系統呼叫
-e trace=network 跟蹤與網路有關的所有系統呼叫
-e strace=signal 跟蹤所有與系統訊號有關的系統呼叫
-e trace=ipc 跟蹤所有與程序通訊有關的系統呼叫
-e signal=set 指定跟蹤set中的訊號
-e read=set 輸出從指定檔案中讀出的資料,例如-e read=3,5
-e write=set 輸出寫入到指定檔案中的資料,例如-e write=1
-r 列印每乙個系統呼叫的相對時間
-t 在輸出中的每一行前加上時間資訊
-tt 在輸出中的每一行前加上時間資訊,時間精確到微秒級
-ttt 在輸出中的每一行前加上時間資訊,輸出為相對時間
-s 指定每一行輸出字串的長度(預設為32)
strace使用舉例:
strace -t whoami #跟蹤whoami可執行程式,每行輸出結果前列印執行的時間
strace -p 17151 -p 17152 -p 17153 #同時跟蹤程序17151、17152、17153
strace -f -e trace=read,write -p 17151 -o log #跟蹤程序17151及子程序
中read和write系統呼叫,輸出到log檔案
必須記住的幾個用法
1)strace -p pid 可以跟蹤某個後台程序
2)strace -o filename 把跟蹤結果輸出到檔案
3)strace -t 記錄每個系統呼叫花費的時間,可以看看哪個系統呼叫時間長
4)strace -t (或者 -tt)記錄每個系統呼叫發生是的時間(時分秒的格式)
5)strace -s 1024 顯示系統呼叫引數時,對於字串顯示的長度, 預設是32,如果字串引數很長,很多資訊顯示不出來。
6)strace -e trace=nanosleep 只記錄相關的系統呼叫資訊。
利用strace 除錯程式
strace p pid 除錯程式 可以看到程序執行的過程,顯示的是系統呼叫的函式,同時可以看出系統呼叫的返回值 core除錯 在root使用者下執行sysctl a grep core,檢視core檔案的配置是否正確 命令設定 1 使用命令 ulimit c unlimited 設定coredum...
關於使用strace除錯網路程式
strace 簡介 strace 命令是一種強大的工具,能夠顯示任何由使用者空間程式發出的系統呼叫.strace 顯示這些呼叫的引數並返回符號形式的值.strace 從核心接收資訊,而且無需以任何特別的方式來構建核心.strace 的每一行輸出包括系統呼叫名稱,然後是引數和返回值.比如close w...
使用linux的strace來除錯程式系統呼叫
命令用法 讓我們看看strace命令如何追蹤乙個程式的執 況。最簡單的形式,strace後面可以跟任何命令。它將列出許許多多的系統呼叫。一開始,我們並不能理解所有的輸出,但是如果你正在尋找一些特殊的東西,那麼你應該能從輸出中發現它。linux strace命令詳解 linux strace 跟蹤程序...