linux命令之調(diào)試工具strace的深入分析
更新時(shí)間:2013年06月03日 09:13:23 作者:
本篇文章是對(duì)調(diào)試工具strace的使用進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
參考
1《linux的strace命令(詳解).txt》 新浪電子書可下載
2man strace
一個(gè)基本上通用的 完整的用法:
strace -o output.txt -T -tt -e trace=all -p 28979
上面的含義是 跟蹤28979進(jìn)程的所有系統(tǒng)調(diào)用(-e trace=all),并統(tǒng)計(jì)系統(tǒng)調(diào)用的花費(fèi)時(shí)間,以及開始時(shí)間(并以可視化的時(shí)分秒格式顯示),最后將記錄結(jié)果存在output.txt文件里面。
必須記住的幾個(gè)用法
1)strace -p pid 可以跟蹤某個(gè)后臺(tái)進(jìn)程
2)strace -o filename 把跟蹤結(jié)果輸出到文件
3)strace -T 記錄每個(gè)系統(tǒng)調(diào)用花費(fèi)的時(shí)間,可以看看哪個(gè)系統(tǒng)調(diào)用時(shí)間長(zhǎng)
4)strace -t (或者 -tt)記錄每個(gè)系統(tǒng)調(diào)用發(fā)生是的時(shí)間(時(shí)分秒的格式)
5)strace -s 1024 顯示系統(tǒng)調(diào)用參數(shù)時(shí),對(duì)于字符串顯示的長(zhǎng)度, 默認(rèn)是32,如果字符串參數(shù)很長(zhǎng),很多信息顯示不出來(lái)。
6)strace -e trace=nanosleep 只記錄相關(guān)的系統(tǒng)調(diào)用信息。
-e trace=network // 只記錄和網(wǎng)絡(luò)api相關(guān)的系統(tǒng)調(diào)用
-e trace=file // 只記錄涉及到文件名的系統(tǒng)調(diào)用
-e trace=desc // 只記錄涉及到文件句柄的系統(tǒng)調(diào)用
還有其他的包括process,ipc,signal等。
一個(gè)經(jīng)典的,通過(guò)strace查看一個(gè)進(jìn)程所有相關(guān)打開文件的排查過(guò)程,參考《linux的strace命令(詳解).txt》 新浪電子書可下載
如果開發(fā)程序沒有一個(gè)強(qiáng)大的工具相伴,那么開發(fā)效率會(huì)非常低,甚至遇到問題無(wú)從下手. 現(xiàn)在開始學(xué)習(xí)linux下的強(qiáng)大的調(diào)試工具strace,并記錄于此.
strace
1)類似于windows下的processexp.exe
可以監(jiān)控系統(tǒng)調(diào)用
2)類似于windows下的depand工具
可以檢查程序的依賴庫(kù). 比linux下的ldd更強(qiáng)大.
參考:strace命令用法
點(diǎn)擊下載
案例:
strace幫助我解決不知日志文件被打印到哪的問題.
用strace跟蹤server
/usr/bin/strace -p pid -o out.file
然后執(zhí)行client端,然后結(jié)束strace,查看out.file 搜索write,open的系統(tǒng)調(diào)用
1《linux的strace命令(詳解).txt》 新浪電子書可下載
2man strace
一個(gè)基本上通用的 完整的用法:
strace -o output.txt -T -tt -e trace=all -p 28979
上面的含義是 跟蹤28979進(jìn)程的所有系統(tǒng)調(diào)用(-e trace=all),并統(tǒng)計(jì)系統(tǒng)調(diào)用的花費(fèi)時(shí)間,以及開始時(shí)間(并以可視化的時(shí)分秒格式顯示),最后將記錄結(jié)果存在output.txt文件里面。
必須記住的幾個(gè)用法
1)strace -p pid 可以跟蹤某個(gè)后臺(tái)進(jìn)程
2)strace -o filename 把跟蹤結(jié)果輸出到文件
3)strace -T 記錄每個(gè)系統(tǒng)調(diào)用花費(fèi)的時(shí)間,可以看看哪個(gè)系統(tǒng)調(diào)用時(shí)間長(zhǎng)
4)strace -t (或者 -tt)記錄每個(gè)系統(tǒng)調(diào)用發(fā)生是的時(shí)間(時(shí)分秒的格式)
5)strace -s 1024 顯示系統(tǒng)調(diào)用參數(shù)時(shí),對(duì)于字符串顯示的長(zhǎng)度, 默認(rèn)是32,如果字符串參數(shù)很長(zhǎng),很多信息顯示不出來(lái)。
6)strace -e trace=nanosleep 只記錄相關(guān)的系統(tǒng)調(diào)用信息。
-e trace=network // 只記錄和網(wǎng)絡(luò)api相關(guān)的系統(tǒng)調(diào)用
-e trace=file // 只記錄涉及到文件名的系統(tǒng)調(diào)用
-e trace=desc // 只記錄涉及到文件句柄的系統(tǒng)調(diào)用
還有其他的包括process,ipc,signal等。
一個(gè)經(jīng)典的,通過(guò)strace查看一個(gè)進(jìn)程所有相關(guān)打開文件的排查過(guò)程,參考《linux的strace命令(詳解).txt》 新浪電子書可下載
如果開發(fā)程序沒有一個(gè)強(qiáng)大的工具相伴,那么開發(fā)效率會(huì)非常低,甚至遇到問題無(wú)從下手. 現(xiàn)在開始學(xué)習(xí)linux下的強(qiáng)大的調(diào)試工具strace,并記錄于此.
strace
1)類似于windows下的processexp.exe
可以監(jiān)控系統(tǒng)調(diào)用
2)類似于windows下的depand工具
可以檢查程序的依賴庫(kù). 比linux下的ldd更強(qiáng)大.
參考:strace命令用法
點(diǎn)擊下載
案例:
strace幫助我解決不知日志文件被打印到哪的問題.
用strace跟蹤server
/usr/bin/strace -p pid -o out.file
然后執(zhí)行client端,然后結(jié)束strace,查看out.file 搜索write,open的系統(tǒng)調(diào)用
您可能感興趣的文章:
- pycharm遠(yuǎn)程linux開發(fā)和調(diào)試代碼的方法
- Linux調(diào)試工具GDB使用簡(jiǎn)易教程
- Linux應(yīng)用調(diào)試使用gdb和gdbserver命令詳解
- Linux 中Tomcat遠(yuǎn)程調(diào)試代碼的實(shí)現(xiàn)方法
- 詳解VS2017 Linux 上.NET Core調(diào)試
- Visual Studio 2017通過(guò)SSH調(diào)試Linux上.NET Core
- Linux中使用VS Code編譯調(diào)試C++項(xiàng)目詳解
- 在Linux下調(diào)試Python代碼的各種方法
- 如何調(diào)試Linux shell腳本
- Linux內(nèi)核設(shè)備驅(qū)動(dòng)之內(nèi)核的調(diào)試技術(shù)筆記整理
相關(guān)文章
php 替換文章中的圖片路徑,下載圖片到本地服務(wù)器的方法
下面小編就為大家分享一篇php 替換文章中的圖片路徑,下載圖片到本地服務(wù)器的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-02-02
PHP支付系統(tǒng)設(shè)計(jì)與典型案例分享
這篇文章主要為大家詳細(xì)介紹了PHP支付系統(tǒng)設(shè)計(jì)與典型案例,可以用作小型支付系統(tǒng),也可以用做第三方應(yīng)用接入開放平臺(tái)時(shí)的支付流水系統(tǒng),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-08-08
基于Laravel 多個(gè)中間件的執(zhí)行順序詳解
今天小編就為大家分享一篇基于Laravel 多個(gè)中間件的執(zhí)行順序詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-10-10

