strace是一個功能強大的除錯,分析診斷工具.你將發現他是一個極好的幫手在你要除錯一個無法看到原始碼或者原始碼無法在編譯的程序.
以main.c 的例子來看
可以看到我們呼叫了 open..... write ... 和 close 等 system 的function....
2. ltrace :
ltrace 是觀察函示庫的呼叫....使用方法很像...
不過我一開始輸入的時候..他說找不到ptrace....只好試著先安裝看看
sudo apt-get install ltrace
發覺有套件可以安裝.....
3. ps :
ps 可以把機器上正在執行的所有行程(process)顯示出來...輸入
ps aux
欄位介紹
USER 就是使用者帳號.....PID 就是 (行程ID)
%CPU 表式 從行程開始執行後...佔去了多少百分比
%MEM : 行程常駐的記憶體佔了全部的記憶體的百分比
VSZ : 是行程的虛擬記憶體大小...單位為KB
RSS : 行程所使用的實體記憶體中沒有被置換的部分....單位為KB
4 : top :
top 會定期的擷取系統狀態和行程資訊....會一直更新
5 : mtrace:
可以分析程式裡面呼叫 malloc(), realloc() 和free()的使用情形
6 : readelf:
可以檢視你的elf 二進位檔案.....
例如:
要顯示ELF 檔案的符號表
readelf -s <filename>
要顯示ELF 檔案的所有區段..
readelf -e <filename>
reference : 使用 truss、strace 或 ltrace 診斷軟件的疑難雜症
reference : ltrace - Linux Debugging Utility Tutorial
reference : Linux上编译ltrace
沒有留言:
張貼留言