strace 除錯linux 程式

2022-07-12 20:06:28 字數 1371 閱讀 4332

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 跟蹤程序...