好用的strace工具

來源:互聯網
上載者:User

很多玩Linux系統的朋友應該都比較熟悉strace這個小工具,下面提供一個能夠再android上使用的strace工具

strace簡介:

strace常用來跟蹤進程執行和系統調用情況。

如用來監視系統調用、解決和動態庫相關問題


相關的調用參數說明如下

 
  1. -c 統計每一系統調用的所執行的時間,次數和出錯的次數等.
  2. -d 輸出strace關於標準錯誤的調試資訊.
  3. -f 跟蹤由fork調用所產生的子進程.
  4. -ff 如果提供-o filename,則所有進程的跟蹤結果輸出到相應的filename.pid中,pid是各進程的進程號.
  5. -F 嘗試跟蹤vfork調用.在-f時,vfork不被跟蹤.
  6. -h 輸出簡要的協助資訊.
  7. -i 輸出系統調用的入口指標.
  8. -q 禁止輸出關於脫離的訊息.
  9. -r 列印出相對時間關於,,每一個系統調用.
  10. -t 在輸出中的每一行前加上時間資訊.
  11. -tt 在輸出中的每一行前加上時間資訊,微秒級.
  12. -ttt 微秒級輸出,以秒了表示時間.
  13. -T 顯示每一調用所耗的時間.
  14. -v 輸出所有的系統調用.一些調用關於環境變數,狀態,輸入輸出等調用由於使用頻繁,預設不輸出.
  15. -V 輸出strace的版本資訊.
  16. -x 以十六進位形式輸出非標準字串
  17. -xx 所有字串以十六進位形式輸出.
  18. -a column
  19. 設定傳回值的輸出位置.預設 為40.
  20. -e expr
  21. 指定一個運算式,用來控制如何跟蹤.格式如下:
  22. [qualifier=][!]value1[,value2]...
  23. qualifier只能是 trace,abbrev,verbose,raw,signal,read,write其中之一.value是用來限定的符號或數字.預設的 qualifier是 trace.驚嘆號是否定符號.例如:
  24. -eopen等價於 -e trace=open,表示只跟蹤open調用.而-etrace!=open表示跟蹤除了open以外的其他調用.有兩個特殊的符號 all 和 none.
  25. 注意有些shell使用!來執行記錄裡的命令,所以要使用\\.
  26. -e trace=set
  27. 只跟蹤指定的系統 調用.例如:-e trace=open,close,rean,write表示只跟蹤這四個系統調用.預設的為set=all.
  28. -e trace=file
  29. 只跟蹤有關檔案操作的系統調用.
  30. -e trace=process
  31. 只跟蹤有關進程式控制制的系統調用.
  32. -e trace=network
  33. 跟蹤與網路有關的所有系統調用.
  34. -e strace=signal
  35. 跟蹤所有與系統訊號有關的 系統調用
  36. -e trace=ipc
  37. 跟蹤所有與進程通訊有關的系統調用
  38. -e abbrev=set
  39. 設定 strace輸出的系統調用的結果集.-v 等與 abbrev=none.預設為abbrev=all.
  40. -e raw=set
  41. 將指 定的系統調用的參數以十六進位顯示.
  42. -e signal=set
  43. 指定跟蹤的系統訊號.預設為all.如 signal=!SIGIO(或者signal=!io),表示不跟蹤SIGIO訊號.
  44. -e read=set
  45. 輸出從指定檔案中讀出 的資料.例如:
  46. -e read=3,5
  47. -e write=set
  48. 輸出寫入到指定檔案中的資料.
  49. -o filename
  50. 將strace的輸出寫入檔案filename
  51. -p pid
  52. 跟蹤指定的進程pid.
  53. -s strsize
  54. 指定輸出的字串的最大長度.預設為32.檔案名稱一直全部輸出.
  55. -u username
  56. 以username 的UID和GID執行被跟蹤的命令



strace.zip


使用說明:

1. 手機終端需要具有root許可權

2. 使用adb push 將strace應用放入到手機中/system/bin/目錄下
adb push c:\strace /system/bin/

3. 使用命令更改strace屬性,是strace具有可執行許可權
adb shell
cd system/bin
chmod 777 strace

strace -p xxxx 查看XXXX進程的函數調用使用方式
其中xxxx為某個進程的PID,

strace -f -o my_trace.txt -e execve ./myscripts
讓strace 記錄監控目前的目錄下myscipts指令碼中調用execve,並將儲存在my_trace.txt檔案中


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.