ldd查看應用程序鏈接了哪些動態庫。
nm列出目標文件中包含的符號信息。
size列出各個段的大小及總的大小。
strings列出文件中的字符串。
readelf讀取elf文件的完整結構。
objdump導出目標文件的相關信息(elf文件相關工具的源頭)。
gdb對文件的執行過程進行調試分析,設置斷點(b)、單步執行(n)、函數調用追蹤(bt)、反匯編(disassemble)。
strace跟蹤程序中的系統調用及信號處理信息。
LD_DEBUG通過設置這個環境變量,可以方便的看到 loader 的加載過程(包括庫的加載,符號解析等過程),使用【LD_DEBUG=help 可執行文件路徑】可查看使用幫助。
LD_PRELOAD環境變量指定的共享庫會被預先加載,如果出現重名的函數,預先加載的函數將會被調用,如在預先加載的庫中包含自定義的puts函數,則在執行程序時將使用自定義版本的puts函數,而不是libc庫中的puts函數。
proc文件系統中包含進程的地址空間映射關系,具體查看/proc/進程id/maps文件的內容。
valgrind工具對可執行程序文件進行內存檢查(還有cache模擬、調用過程跟蹤等功能),以避免內存泄露等問題。
addrline將可執行文件中的地址轉換為其在源文件中對應的位置(文件名:行號)。
posted on 2011-01-19 00:05
何克勤 閱讀(443)
評論(0) 編輯 收藏 所屬分類:
C/C++ 、
GNU Linux/Unix