日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

linux下的GNU工具集包括GNU Compiler Collection,也就是大名鼎鼎的GCC,還包括GNU Binutils,即GNU的二進制工具集。本節主要介紹GNU的二進制集,對我們在Linux下進行代碼的學習、調試非常有用。

readelf:可以顯示elf格式可執行文件的信息。elf格式是Unix/Linux平臺上應用最廣泛的二進制文件之一。

列出elf文件的頭信息:readelf -h a.out

Linux下GNU工具集介紹

 

Magic表示幻數,用來指明這個文件是一個elf文件,第一個字節7f是固定的數,45 4c 46分別是elf三個字母的ascii值。

nm:列出目標文件中的符號(函數、變量),常在調試時使用。

用法:nm a.out

size:列出目標文件每一段的大小以及總體的大小。

用法:size a.out

strings:列出目標文件中可打印的字符串。

用法:strings test.o

strip:瘦身,用來丟棄目標文件中的全部或者特定的符號,減小文件體積

strip相當于脫衣服,對于嵌入式系統來說,這個命令必不可少。在strip之后,文件變小了,仍然可以執行,這就就節省了很多空間。strip不僅僅可以針對可執行文件,還能針對目標文件和動態庫等。在實際的開發中,經常需要對動態庫.so進行strip操作,減少占用空間。而在調試的時候(比如用addr2line),就需要符號了。因此,通常的做法是:strip前的庫用來調試,strip后的庫用來實際發布,他們兩者有對應關系。一旦發布的strip后的庫出了問題,就可以找對應的未strip的庫來定位。最后啰嗦一句,某某動態庫strip前是18M左右,strip后是3M左右,可見,脫脫衣服還是有明顯好處的。

用法:strip a.out,注意:strip不要瘦身.o的中間文件,否則會導致無法鏈接

file:列出文件的信息

objcopy:目標文件格式轉換

objcopy -O binary a.out a.bin

objcopy -O binary u-boot u-boot.bin

將elf格式的文件轉換為二進制格式。

objdump:主要用來反匯編。

反匯編:把目標代碼轉為匯編代碼的過程,也可以說是把機器語言轉換為匯編語言代碼、低級轉高級的意思,常用于軟件破解、外掛技術、病毒分析、逆向工程、軟件漢化等領域。在此過程中我們可以領悟到軟件作者的編程思想。總之一句話:軟件一切神秘的運行機制全在反匯編代碼里面。目前網絡上的許多“免費軟件“都跟反匯編息息相關。

objdump -d a.out 輸出到終端

objdump -d a.out > test.dis

反匯編bin格式的文件:

objdump -D -b binary -m arm test.bin > test.dis

addr2line:將程序中的地址對應到文件名和相應的行號,程序運行出錯時,通常會返回一個地址,根據這個地址就可以定位到代碼出錯的位置。通常用于定位內核中的錯誤。

用法:addr2line 地址 -e a.out -f

注意,要想使用addr2line,要求elf文件在編譯的時候必須要添加-g參數。

Linux下GNU工具集介紹

 

分享到:
標簽:Linux GNU
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定