創(chuàng)新互聯(lián)www.cdcxhl.cn八線動態(tài)BGP香港云服務器提供商,新人活動買多久送多久,劃算不套路!
創(chuàng)新互聯(lián)公司長期為近千家客戶提供的網站建設服務,團隊從業(yè)經驗10年,關注不同地域、不同群體,并針對不同對象提供差異化的產品和服務;打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網生態(tài)環(huán)境。為北票企業(yè)提供專業(yè)的網站設計、做網站,北票網站改版等技術服務。擁有十年豐富建站經驗和眾多成功案例,為您定制開發(fā)。小編給大家分享一下使用linux的strace命令跟蹤系統(tǒng)調用,相信大部分人都還不怎么了解,因此分享這邊文章給大家學習,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去學習方法吧!
strace命令是一個集診斷、調試、統(tǒng)計與一體的工具,我們可以使用strace對應用的系統(tǒng)調用和信號傳遞的跟蹤結果來對應用進行分析,以達到解決問題或者是了解應用工作過程的目的。
strace常用來跟蹤進程執(zhí)行時的系統(tǒng)調用和所接收的信號。 在Linux世界,進程不能直接訪問硬件設備,當進程需要訪問硬件設備(比如讀取磁盤文件,接收網絡數據等等)時,必須由用戶態(tài)模式切換至內核態(tài)模式,通 過系統(tǒng)調用訪問硬件設備。strace可以跟蹤到一個進程產生的系統(tǒng)調用,包括參數,返回值,執(zhí)行消耗的時間。
語法格式:strace [參數]
常用參數:
-c | 統(tǒng)計每一系統(tǒng)調用的所執(zhí)行的時間,次數和出錯的次數等 |
-d | 輸出strace關于標準錯誤的調試信息 |
-f | 跟蹤由fork調用所產生的子進程 |
-F | 嘗試跟蹤vfork調用.在-f時,vfork不被跟蹤 |
-a | 設置返回值的輸出位置.默認 為40 |
-r | 打印出相對時間關于每一個系統(tǒng)調用 |
-t | 在輸出中的每一行前加上時間信息 |
參考實例
通用的完整用法,跟蹤28979進程的所有系統(tǒng)調用(-e trace=all),并統(tǒng)計系統(tǒng)調用的花費時間,以及開始時間(并以可視化的時分秒格式顯示),最后將記錄結果存在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只跟蹤特定的系統(tǒng)調用:
[root@linuxcool ~]# strace -f -o configure-strace.txt -e execve ./configure
以上是使用linux的strace命令跟蹤系統(tǒng)調用的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注創(chuàng)新互聯(lián)-成都網站建設公司行業(yè)資訊頻道!