Linux應(yīng)用調(diào)試之strace命令詳解
1.strace簡介
strace常用來跟蹤進程執(zhí)行時的系統(tǒng)調(diào)用和所接收的信號。 通過strace可以知道應(yīng)用程序打開了哪些文件,以及讀寫了什么內(nèi)容,包括消耗的時間以及返回值等。在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í)行消耗的時間。
2.安裝strace命令
首先需要以下兩個文件:
strace-4.5.15.tar.bz2 strace-fix-arm-bad-syscall.patch
步驟如下:
#tar -xjf strace-4.5.15.tar.bz2 #cd strace-4.5.15/ #patch -p1 <../strace-fix-arm-bad-syscall.patch //“p1”值去掉補丁的第一個路徑 “<”指補丁文件位置,“../” 指返回上個目錄 #./configure --host=arm-linux CC=arm-linux-gcc //配置configure #make //生成strace命令文件
然后將strace命令文件,放入我們開發(fā)板的根目錄/bin中,便能使用了
#cp strace /nfs_root/bin/ //nfs_root:開發(fā)板的nfs系統(tǒng)根目錄
3.strace命令使用
常用參數(shù)如下所示:
-o 指定跟蹤信息的輸出文件
-t 記錄跟蹤信息的時間,以S為單位
-tt 記錄跟蹤信息的時間,以uS為單位
4.實例
通過strace來測試led_text應(yīng)用程序
#insmod led.ko //裝載led驅(qū)動 # strace -o log.txt ./led_text led1 on //測試led_text應(yīng)用程序,打開led1,并將跟蹤信息輸出到log.txt中
其中l(wèi)og.txt的內(nèi)容如下所示:
總結(jié)
以上所述是小編給大家介紹的Linux應(yīng)用調(diào)試之strace命令詳解,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關(guān)文章
linux shell 自定義函數(shù)方法(定義、返回值、變量作用域)
linux shell 可以用戶定義函數(shù),然后在shell腳本中可以隨便調(diào)用。下面說說它的定義方法,以及調(diào)用需要注意那些事項2014-09-09shell腳本快速創(chuàng)建、格式化、掛載新添加的磁盤實現(xiàn)方法詳解
這篇文章主要介紹了shell腳本快速創(chuàng)建、格式化、掛載新添加的磁盤實現(xiàn)方法,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-10-10Shell腳本實現(xiàn)監(jiān)控rsync數(shù)據(jù)是否傳輸完
這篇文章主要介紹了Shell腳本實現(xiàn)監(jiān)控rsync數(shù)據(jù)是否傳輸完,本文直接給出實現(xiàn)代碼,需要的朋友可以參考下2014-12-12linux echo命令以及l(fā)inux echo命令提示權(quán)限不夠的解決辦法
linux的echo命令, 在shell編程中極為常用, 在終端下打印變量value的時候也是常常用到的, 因此有必要了解下echo的用法。下面通過本文給大家介紹linux echo命令以及l(fā)inux echo命令提示權(quán)限不夠的解決辦法,感興趣的朋友一起看看吧2017-09-09shell子進程多任務(wù)實現(xiàn)進程高并發(fā)
本文主要介紹了shell子進程多任務(wù)實現(xiàn)進程高并發(fā),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-07-07linux 比較兩個文件夾diff不同 (diff命令, md5列表)
這篇文章主要介紹了linux 比較兩個文件夾diff不同 (diff命令, md5列表),比較文件夾diff,可以直接使用diff命令,也可以比較文件md5列表,下面通過實例給大家介紹下,感興趣的朋友跟隨腳本之家小編一起學(xué)習(xí)吧2018-05-05