posts - 134,comments - 22,trackbacks - 0

          ldd查看應(yīng)用程序鏈接了哪些動(dòng)態(tài)庫。

          nm列出目標(biāo)文件中包含的符號信息。

          size列出各個(gè)段的大小及總的大小。

          strings列出文件中的字符串。

          readelf讀取elf文件的完整結(jié)構(gòu)。

          objdump導(dǎo)出目標(biāo)文件的相關(guān)信息(elf文件相關(guān)工具的源頭)。

          gdb對文件的執(zhí)行過程進(jìn)行調(diào)試分析,設(shè)置斷點(diǎn)(b)、單步執(zhí)行(n)、函數(shù)調(diào)用追蹤(bt)、反匯編(disassemble)。

          strace跟蹤程序中的系統(tǒng)調(diào)用及信號處理信息。

          LD_DEBUG通過設(shè)置這個(gè)環(huán)境變量,可以方便的看到 loader 的加載過程(包括庫的加載,符號解析等過程),使用【LD_DEBUG=help 可執(zhí)行文件路徑】可查看使用幫助。

          LD_PRELOAD環(huán)境變量指定的共享庫會被預(yù)先加載,如果出現(xiàn)重名的函數(shù),預(yù)先加載的函數(shù)將會被調(diào)用,如在預(yù)先加載的庫中包含自定義的puts函數(shù),則在執(zhí)行程序時(shí)將使用自定義版本的puts函數(shù),而不是libc庫中的puts函數(shù)。

          proc文件系統(tǒng)中包含進(jìn)程的地址空間映射關(guān)系,具體查看/proc/進(jìn)程id/maps文件的內(nèi)容。

          valgrind工具對可執(zhí)行程序文件進(jìn)行內(nèi)存檢查(還有cache模擬、調(diào)用過程跟蹤等功能),以避免內(nèi)存泄露等問題。

          addrline將可執(zhí)行文件中的地址轉(zhuǎn)換為其在源文件中對應(yīng)的位置(文件名:行號)。

          posted on 2011-01-19 00:05 何克勤 閱讀(448) 評論(0)  編輯  收藏 所屬分類: C/C++GNU Linux/Unix
          主站蜘蛛池模板: 奉化市| 文化| 广宗县| 武定县| 徐州市| 舞钢市| 通河县| 沾益县| 乡城县| 时尚| 英德市| 乌苏市| 磐石市| 九龙坡区| 阜城县| 治多县| 梨树县| 石首市| 永顺县| 简阳市| 自治县| 安乡县| 钦州市| 辉县市| 东台市| 桦甸市| 科技| 含山县| 台北市| 会东县| 鹤岗市| 南丹县| 铜鼓县| 砚山县| 伊金霍洛旗| 肇源县| 临高县| 南充市| 开化县| 姜堰市| 金川县|