新聞中心
創(chuàng)新互聯(lián)www.cdcxhl.cn八線動態(tài)BGP香港云服務(wù)器提供商,新人活動買多久送多久,劃算不套路!
小編給大家分享一下使用linux的strace命令跟蹤系統(tǒng)調(diào)用,相信大部分人都還不怎么了解,因此分享這邊文章給大家學習,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去學習方法吧!
strace命令是一個集診斷、調(diào)試、統(tǒng)計與一體的工具,我們可以使用strace對應(yīng)用的系統(tǒng)調(diào)用和信號傳遞的跟蹤結(jié)果來對應(yīng)用進行分析,以達到解決問題或者是了解應(yīng)用工作過程的目的。
strace常用來跟蹤進程執(zhí)行時的系統(tǒng)調(diào)用和所接收的信號。 在Linux世界,進程不能直接訪問硬件設(shè)備,當進程需要訪問硬件設(shè)備(比如讀取磁盤文件,接收網(wǎng)絡(luò)數(shù)據(jù)等等)時,必須由用戶態(tài)模式切換至內(nèi)核態(tài)模式,通 過系統(tǒng)調(diào)用訪問硬件設(shè)備。strace可以跟蹤到一個進程產(chǎn)生的系統(tǒng)調(diào)用,包括參數(shù),返回值,執(zhí)行消耗的時間。
語法格式:strace [參數(shù)]
常用參數(shù):
-c | 統(tǒng)計每一系統(tǒng)調(diào)用的所執(zhí)行的時間,次數(shù)和出錯的次數(shù)等 |
-d | 輸出strace關(guān)于標準錯誤的調(diào)試信息 |
-f | 跟蹤由fork調(diào)用所產(chǎn)生的子進程 |
-F | 嘗試跟蹤vfork調(diào)用.在-f時,vfork不被跟蹤 |
-a | 設(shè)置返回值的輸出位置.默認 為40 |
-r | 打印出相對時間關(guān)于每一個系統(tǒng)調(diào)用 |
-t | 在輸出中的每一行前加上時間信息 |
參考實例
通用的完整用法,跟蹤28979進程的所有系統(tǒng)調(diào)用(-e trace=all),并統(tǒng)計系統(tǒng)調(diào)用的花費時間,以及開始時間(并以可視化的時分秒格式顯示),最后將記錄結(jié)果存在output.txt文件里面:
[root@linuxcool ~]# strace -o output.txt -T -tt -e trace=all -p 28979
同時跟蹤fork和vfork出來的進程,把所有strace輸出寫到~/dcop-strace.txt里面, 啟動調(diào)試dcopserver:
[root@linuxcool ~]# strace -f -F -o ~/dcop-strace.txt dcopserver
設(shè)置返回值的輸出位置.默認為40:
[root@linuxcool ~]# strace -a column
跟蹤 whoami時的輸出:
[root@linuxcool ~]# strace -o whoami-strace.txt whoami
限制strace只跟蹤特定的系統(tǒng)調(diào)用:
[root@linuxcool ~]# strace -f -o configure-strace.txt -e execve ./configure
以上是使用linux的strace命令跟蹤系統(tǒng)調(diào)用的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學習更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道!
網(wǎng)站題目:使用linux的strace命令跟蹤系統(tǒng)調(diào)用-創(chuàng)新互聯(lián)
文章地址:http://fisionsoft.com.cn/article/cecojs.html