-e 顯示在每一執行系統調用中傳遞的環境字符串。
-f 跟在 fork 系統調用產生的所有子進程之后,并包含跟蹤輸出中的信號、故障和系統調用。 通常,僅跟蹤第一級命令和進程。如果指定 -f 標志,進程標識與每行跟蹤輸出一起顯示哪個進程執行系統調用或接收信號。
-i 阻止顯示可中斷的休眠系統調用。某些終端設備或管道的系統調用,如 open 和 kread,可無限期休眠且是可中斷的。通常,如果這種休眠系統調用保持超過一秒休眠,truss 將報告。系統調用完成后一秒內報告系統調用。-i 標志使這種系統調用完成后僅報告一次。
-l 顯示有關 LWP 進程的標識(線程標識)及 truss 輸出。輸出中缺省不顯示 LWP 標識。
-m [!]Fault 跟蹤進程中的機器故障。必須用逗號分隔要跟蹤的機器故障?砂疵Q或代碼指定故障(參見 sys/procfs.h 頭文件)。如果列表以符號“!”開始,指定的故障不再被跟蹤且不顯示跟蹤輸出。缺省值是 -mall -m!fltpage。
-o Outfile 指定用于跟蹤輸出的文件。缺省時輸出指向標準錯誤。
-p 將參數作為一列現存進程的進程標識而不是要執行的命令解釋到 truss。 倘若進程用戶標識或組標識與用戶的用戶標識或組標識匹配或者用戶是特權用戶,truss 控制并開始跟蹤每個進程。
-r [!] FileDescriptor 顯示每一個讀取指定文件描述符的 I/O 緩沖區全內容。輸出采用每行 32 字節的格式并以 ASCII 字符(跟在空格后)形式顯示字節,或以控制字符的雙字符 C 語言轉義序列形式顯示字節,如水平制表符 (\\t) 或換行符 (\\n)。如果不能解釋成 ASCII 格式,字節以雙字符十六進制形式顯示。即使沒有 -r 標志,仍顯示跟蹤讀取 I/O 緩沖區的前 16 位字節。缺省值是 -r!all。[Page]
-s [!] Signal 允許列出要跟蹤或除去的 Signals。跟蹤列表中指定的信號(由逗號分隔)。信號被忽略但不是被進程阻塞時,跟蹤輸出仍報告每個指定信號的接收。直到進程釋放時才可接收阻塞信號?砂疵Q或代碼指定信號(參見 sys/signal.h)。如果該列表以“!”符號開頭,則列出的信號將從顯示跟蹤輸出中排除。缺省值是 -s all。
-t [!] Syscall 包含或排除來自跟蹤進程的系統調用。要跟蹤的系統調用必須在列表中指定并以逗號分隔。如果列表以符號“!”開始,指定的系統調用將被從跟蹤輸出中排除。缺省值是 -tall。
-u [!] [LibraryName […]::[!]FunctionName […] ]
跟蹤來自用戶庫動態裝入的用戶級函數調用。 LibraryName 是逗號分隔的庫名列表。FunctionName 是逗號分隔的函數名列表。兩種情況下的名稱都包含名稱匹配元字符 *、? 和 [],這些字符與由 shell 解釋的意義相同,但適用于庫/函數名稱空間而非文件。
任一列表中以 ! 開頭的列指定不跟蹤庫或函數的排除名稱列表。除去庫將除去該庫中所用函數。忽略庫除去列表后的任何函數列表?芍付ǘ鄠 -u 選項并將它們從左到右排列。缺省不跟蹤庫/函數調用。
-w [!] FileDescriptor 顯示列出文件描述符每個寫過程的 I/O 緩沖區內容(參見 -r)。缺省值是 -w!all。
-x [!] Syscall 以原始格式顯示跟蹤系統調用指定參數的數據,通常按十六進制而不是符號化方式。缺省值是 -x!all.
示例
1. 在終端上跟蹤 find 命令,輸入:
truss find . -print >find.out
2. 跟蹤 lseek、close、statx 和開放系統調用,輸入:
truss -t lseek,close,statx,open find . -print > find.out
文章來源于領測軟件測試網 http://www.kjueaiud.com/