一 將strace結果輸出到檔案
1 格式
-o filename 或 2>filename
2 實戰
[root@localhost charpter05]# strace -c -o test.txt ./test88
[root@localhost charpter05]# strace -c ./test 2>test2.txt88
[root@localhost charpter05]# diff test.txt test2.txt
3 說明
比較結果一樣,說明兩個命令等價。
二 將系統每個呼叫的時間列印出來
1 格式
-t2 實戰
[root@localhost charpter05]# strace -t ./test
[root@localhost charpter05]# strace -t ./test
execve("./test", ["./test"], [/* 25 vars */]) = 0 <0.000422>
brk(null) = 0x181d000 <0.000194>
mmap(null, 4096, prot_read|prot_write, map_private|map_anonymous, -1, 0) = 0x7fae23c80000 <0.000212>
access("/etc/ld.so.preload", r_ok) = -1 enoent (no such file or directory) <0.000158>
open("/etc/ld.so.cache", o_rdonly|o_cloexec) = 3 <0.000135>
fstat(3, ) = 0 <0.000163>
mmap(null, 35467, prot_read, map_private, 3, 0) = 0x7fae23c77000 <0.000133>
close(3) = 0 <0.000139>
open("/lib64/libstdc++.so.6", o_rdonly|o_cloexec) = 3 <0.000139>
......
3 說明
呼叫execve函式花費0.000422s,呼叫mmap花費0.000212
三 記錄每次系統呼叫發生的時間
1 格式
-t 或 -tt 或 -ttt 記錄每次系統呼叫發生的時間,分別精確到秒、微秒和unix時間戳的微秒。
2 實戰
[root@localhost charpter05]# strace -t ./test
14:49:07 execve("./test", ["./test"], [/* 25 vars */]) = 0
14:49:07 brk(null) = 0x19e9000
14:49:07 mmap(null, 4096, prot_read|prot_write, map_private|map_anonymous, -1, 0) = 0x7fa13b206000
14:49:07 access("/etc/ld.so.preload", r_ok) = -1 enoent (no such file or directory)
14:49:07 open("/etc/ld.so.cache", o_rdonly|o_cloexec) = 3
14:49:07 fstat(3, ) = 0
14:49:07 mmap(null, 35467, prot_read, map_private, 3, 0) = 0x7fa13b1fd000
14:49:07 close(3) = 0
......
3 說明
從結果可知,這幾個系統呼叫都是在14:49:07這一秒發生的。
四 追蹤現有的程序
1 格式
strace -p pid
其中,pid是指程序id。
2 說明
strace不光能初始化乙個程序進行strace,還能追蹤現有的程序。
除錯技巧 三 strace
在linux系統中,strace是一種相當有效的跟蹤工具,它的主要特點是可以被用來監視系統呼叫。我們不僅可以用strace除錯乙個新開始的程式,也可以除錯乙個已經在執行的程式 這意味著把strace繫結到乙個已有的pid上 對於globalmem字元裝置檔案,以strace方式執行如 所示的使用者空...
除錯工具Strace
0.strace是什麼?按照strace官網的描述,strace是乙個可用於診斷 除錯和教學的linux使用者空間 我們用它來監控使用者空間程序和核心的互動,比如系統呼叫 訊號傳遞 程序狀態變更等。原始碼 1.編譯移植strace configure prefix pwd install 以x86平...
strace 除錯linux 程式
strace常用引數 c 統計每種系統呼叫執行的時間 呼叫次數 出錯次數,程式退出時給出報告 p pid 跟蹤指定的程序,可以使用多個 p同時跟蹤多個程序 o filename strace預設輸出到stdout,o可以將輸出寫入到指定的檔案 f 跟蹤由fork產生的子程序的系統呼叫 ff 常與 o...