溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

使用linux的strace命令跟蹤系統(tǒng)調(diào)用

發(fā)布時間:2020-07-18 13:46:07 來源:億速云 閱讀:416 作者:清晨 欄目:服務(wù)器

小編給大家分享一下使用linux的strace命令跟蹤系統(tǒng)調(diào)用,相信大部分人都還不怎么了解,因此分享這邊文章給大家學(xué)習(xí),希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去學(xué)習(xí)方法吧!

strace命令是一個集診斷、調(diào)試、統(tǒng)計與一體的工具,我們可以使用strace對應(yīng)用的系統(tǒng)調(diào)用和信號傳遞的跟蹤結(jié)果來對應(yīng)用進(jìn)行分析,以達(dá)到解決問題或者是了解應(yīng)用工作過程的目的。

strace常用來跟蹤進(jìn)程執(zhí)行時的系統(tǒng)調(diào)用和所接收的信號。 在Linux世界,進(jìn)程不能直接訪問硬件設(shè)備,當(dāng)進(jìn)程需要訪問硬件設(shè)備(比如讀取磁盤文件,接收網(wǎng)絡(luò)數(shù)據(jù)等等)時,必須由用戶態(tài)模式切換至內(nèi)核態(tài)模式,通 過系統(tǒng)調(diào)用訪問硬件設(shè)備。strace可以跟蹤到一個進(jìn)程產(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)于標(biāo)準(zhǔn)錯誤的調(diào)試信息
-f跟蹤由fork調(diào)用所產(chǎn)生的子進(jìn)程
-F嘗試跟蹤vfork調(diào)用.在-f時,vfork不被跟蹤
-a設(shè)置返回值的輸出位置.默認(rèn) 為40
-r打印出相對時間關(guān)于每一個系統(tǒng)調(diào)用
-t在輸出中的每一行前加上時間信息

參考實例

通用的完整用法,跟蹤28979進(jìn)程的所有系統(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出來的進(jìn)程,把所有strace輸出寫到~/dcop-strace.txt里面, 啟動調(diào)試dcopserver:

[root@linuxcool ~]# strace -f -F -o ~/dcop-strace.txt dcopserver

設(shè)置返回值的輸出位置.默認(rèn)為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)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI