Binutils工具集簡介
阿新 • • 發佈:2021-10-30
如果使用GCC編譯器,那麼還有一個非常重要的、同樣來自於GNU的工具集(toolchain) —— binutils toolchain。這一工具集中存在的一些工具,可以說是我們開發和除錯不可缺少的利器。 Binutils中的工具不少和GCC相類似,也是針對特定的處理器的。
addr2line | 將程式地址翻譯成檔名和行號;給定地址和可執行檔名稱,它使用其中的除錯資訊判斷與此地址有關聯的原始檔和行號 |
ar | 建立、修改和提取歸檔 |
as |
一個彙編器,將彙編檔案輸出為目標檔案(.s->.o) |
c++filt | 被連結器用於修復 C++ 和 Java 符號,防止過載的函式相互衝突 |
elfedit | 更新elf檔案的elf頭 |
gprof | 顯示分析資料的呼叫圖表 |
ld | 連結器,講幾個物件檔案和歸檔檔案組合成一個檔案,重新定位它們的資料並且捆綁符號索引 |
ld.bfd | 到ld的硬連結 |
nm | 列出給定物件檔案中的符號及符號在記憶體中的(開始)地址(函式名、變數名) |
objcopy | 可以從程式檔案中拷貝出我們指定的段 |
objdump | 顯示程式檔案相關資訊和對程式檔案反彙編 |
ranlib | 建立一個歸檔的內容索引並存儲在歸檔內;索引列出其成員中可重定位的物件檔案定義的所有符號 |
readelf | 顯示有關elf二進位制檔案的資訊,readelf -h *.exe進行檢視 |
size | 列出給定程式檔案中各段的大小 |
strings | 顯示程式檔案中的可顯示字串 |
strip | 移除物件的除錯資訊(符號等),檔案瘦身 |
libiberty | 包含多個 GNU 程式會使用的途徑,包括getopt、obstack、strerror、strtol和strtoul |
libbfd | 二進位制檔案描述器庫 |
libopcode | 用於處理 opcodes——處理器指令的 “可讀文字” 版本或用於編制objdump這樣的工具的庫 |