您好,登錄后才能下訂單哦!
小編給大家分享一下使用linux的strace命令跟蹤系統調用,相信大部分人都還不怎么了解,因此分享這邊文章給大家學習,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去學習方法吧!
strace命令是一個集診斷、調試、統計與一體的工具,我們可以使用strace對應用的系統調用和信號傳遞的跟蹤結果來對應用進行分析,以達到解決問題或者是了解應用工作過程的目的。
strace常用來跟蹤進程執行時的系統調用和所接收的信號。 在Linux世界,進程不能直接訪問硬件設備,當進程需要訪問硬件設備(比如讀取磁盤文件,接收網絡數據等等)時,必須由用戶態模式切換至內核態模式,通 過系統調用訪問硬件設備。strace可以跟蹤到一個進程產生的系統調用,包括參數,返回值,執行消耗的時間。
語法格式:strace [參數]
常用參數:
-c | 統計每一系統調用的所執行的時間,次數和出錯的次數等 |
-d | 輸出strace關于標準錯誤的調試信息 |
-f | 跟蹤由fork調用所產生的子進程 |
-F | 嘗試跟蹤vfork調用.在-f時,vfork不被跟蹤 |
-a | 設置返回值的輸出位置.默認 為40 |
-r | 打印出相對時間關于每一個系統調用 |
-t | 在輸出中的每一行前加上時間信息 |
參考實例
通用的完整用法,跟蹤28979進程的所有系統調用(-e trace=all),并統計系統調用的花費時間,以及開始時間(并以可視化的時分秒格式顯示),最后將記錄結果存在output.txt文件里面:
[root@linuxcool ~]# strace -o output.txt -T -tt -e trace=all -p 28979
同時跟蹤fork和vfork出來的進程,把所有strace輸出寫到~/dcop-strace.txt里面, 啟動調試dcopserver:
[root@linuxcool ~]# strace -f -F -o ~/dcop-strace.txt dcopserver
設置返回值的輸出位置.默認為40:
[root@linuxcool ~]# strace -a column
跟蹤 whoami時的輸出:
[root@linuxcool ~]# strace -o whoami-strace.txt whoami
限制strace只跟蹤特定的系統調用:
[root@linuxcool ~]# strace -f -o configure-strace.txt -e execve ./configure
以上是使用linux的strace命令跟蹤系統調用的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。