任一列表中以 ! 開頭的列指定不跟蹤庫或函數的排除名稱列表。除去庫將除去該庫中所用函數。忽略庫除去列表后的任何函數列表?芍付ǘ鄠 -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
3. 顯示 find 命令的線程標識和常規輸出,輸入:
truss -l find . -print >find.out
4. 顯示 find 命令的時間戳記和常規輸出,輸入:
truss -d find . -print >find.out
5. 顯示 find 命令的增量時間和常規輸出,輸入:
truss -D find . -print >find.out
6. 運行 ls 命令時,在 libc.a 庫中跟蹤 malloc() 函數調用及除去 strlen() 函數調用,輸入:
truss -u libc.a::malloc,!strlen ls
7. 運行 ls 命令時,跟蹤 libc.a 庫中名稱以“m”開頭的所有函數調用,輸入:
truss -u libc.a::m*,!strlen ls
8. 運行可執行 foo 時,跟蹤來自 libcurses.a 庫的所有函數調用及除去來自 libc.a 的調用,輸入:
truss -u libcurses.a,!libc.a::* foo
9. 運行可執行 foo 時,跟蹤來自 libcurses.a 的 refresh() 函數調用和來自 libc.a 的 malloc() 函數調用,輸入:
truss -u libc.a::malloc -u libcurses.a::refresh foo
下面是一個英文版本的介紹和范例。
Truss is used to trace the system/library calls (not user calls) and signals made/received by a new or existing process. It sends the output to stderr.
NOTE: Trussing a process throttles that process to your display speed. Use -wall and -rall sparingly.
Truss usage
truss -a -e -f -rall -wall -p
truss -a -e -f -rall -wall
文章來源于領測軟件測試網 http://www.kjueaiud.com/