国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【ARM 嵌入式 編譯系列 10.3 -- GNU elfutils 工具小結(jié)】

這篇具有很好參考價(jià)值的文章主要介紹了【ARM 嵌入式 編譯系列 10.3 -- GNU elfutils 工具小結(jié)】。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。


請(qǐng)閱讀【ARM GCC 編譯專(zhuān)欄導(dǎo)讀】


上篇文章:【ARM 嵌入式 編譯系列 10.2 – 符號(hào)表與可執(zhí)行程序分離詳細(xì)講解】
下篇文章:【ARM 嵌入式 編譯系列 11 – GCC attribute((packed))詳細(xì)介紹】

什么是 GNU elfutils?

GNU elfutils是一個(gè)開(kāi)源的工具集,用于處理ELF(Executable and Linkable Format)格式的可執(zhí)行文件、目標(biāo)文件和共享庫(kù)。ELF是一種常見(jiàn)的二進(jìn)制文件格式,常用于Linux和其他類(lèi)Unix系統(tǒng)。

GNU elfutils 常用工具有哪些?

以下是一些 GNU elfutils工具的簡(jiǎn)要介紹和使用示例:

  • readelf:用于查看ELF文件的詳細(xì)信息,如段表、符號(hào)表、重定位表等。例如:readelf -a binary_file;

  • objdump:用于反匯編ELF文件,顯示二進(jìn)制代碼的匯編指令。例如:objdump -d binary_file;

  • objcopy:用于復(fù)制、轉(zhuǎn)換和刪除ELF文件的各種部分。例如:objcopy -O binary input output , 將ELF文件轉(zhuǎn)換為裸二進(jìn)制文件;

  • nm:用于顯示ELF文件的符號(hào)表。例如:nm binary_file;

  • strip:用于從ELF文件中刪除符號(hào)和調(diào)試信息,以減小文件大小。例如:strip binary_file;

  • eu-unstrip 可以用 eu-unstrip 將調(diào)試信息合并回二進(jìn)制文件;

  • eu-strip 可以用eu-strip將調(diào)試信息從二進(jìn)制文件中分離出來(lái), 示例:eu-strip --strip-debug --remove-comment -f myfile.debug myfile, 使用--strip-debug選項(xiàng)移除了 myfile 中的調(diào)試信息,并使用-f選項(xiàng)將調(diào)試信息保存到了myfile.debug文件中。

  • eu-elflint 可以用來(lái)檢查和修復(fù)ELF文件中的符號(hào)。eu-elflint --reloc-debug-sections myfile, 使用--reloc-debug-sections選項(xiàng)修復(fù)了myfile中的調(diào)試符號(hào)。

這些只是GNU elfutils工具集中的一部分工具, 具體使用可以見(jiàn)前面系列文章

objcopy 常用參數(shù)有哪些?

在編譯腳本中我們經(jīng)??梢钥吹?objcopy 命令,下面簡(jiǎn)單介紹下 objcopy 常用的參數(shù):

  • --only-keep-debug選項(xiàng)用于從目標(biāo)文件中提取調(diào)試信息。

例如:

objcopy --only-keep-debug myprog myprog.debug

在這個(gè)例子中,objcopy將myprog中的調(diào)試信息提取出來(lái),并存儲(chǔ)到myprog.debug文件中。

  • --add-gnu-debuglink選項(xiàng)用于將提取的調(diào)試信息文件鏈接回原始的二進(jìn)制文件。

例如:

objcopy --add-gnu-debuglink=myprog.debug myprog

在這個(gè)例子中,objcopymyprog.debug文件鏈接回myprog文件。這樣,即使myprog文件沒(méi)有包含調(diào)試信息,調(diào)試器(如gdb)也可以找到調(diào)試信息。

GNU binutils和GNU elfutils區(qū)別是什么?

GNU binutils和GNU elfutils都是GNU工具集的一部分,都包含用于處理二進(jìn)制文件的工具,但它們的重點(diǎn)和功能有所不同。

  • GNU binutils:這是一組用于處理二進(jìn)制文件的程序集,包含了如ld(鏈接器)、as(匯編器)、objdump(反匯編等)、nm(列出符號(hào)表)、strip(剝離符號(hào)和調(diào)試信息)等工具。這些工具主要用于創(chuàng)建、修改和分析二進(jìn)制文件。

  • GNU elfutils:這是一個(gè)庫(kù)和工具集,重點(diǎn)放在處理ELF(Executable and Linkable Format)格式的二進(jìn)制文件和DWARF(一種調(diào)試信息格式)。其中包含了如libelf(操作ELF格式的庫(kù))、readelf(顯示ELF文件信息)、eu-strip(剝離符號(hào)和調(diào)試信息,但比binutils的strip更強(qiáng)大)等工具。elfutils主要用于更復(fù)雜、更深入的二進(jìn)制文件分析和調(diào)試任務(wù),比如處理調(diào)試信息。

總的來(lái)說(shuō),GNU binutils更關(guān)注通用的二進(jìn)制文件操作,而 GNU elfutils則更關(guān)注ELF格式和調(diào)試信息的處理。在日常開(kāi)發(fā)中,可能會(huì)同時(shí)用到這兩個(gè)工具集。

上篇文章:【ARM 嵌入式 編譯系列 10.2 – 符號(hào)表與可執(zhí)行程序分離詳細(xì)講解】
下篇文章:【ARM 嵌入式 編譯系列 11 – GCC attribute((packed))詳細(xì)介紹】
文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-648392.html

到了這里,關(guān)于【ARM 嵌入式 編譯系列 10.3 -- GNU elfutils 工具小結(jié)】的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶(hù)投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【ARM 嵌入式 編譯系列 2.1 -- GCC 編譯參數(shù)學(xué)習(xí)】

    請(qǐng)閱讀 【ARM GCC 編譯專(zhuān)欄導(dǎo)讀】 上篇文章:ARM 嵌入式 編譯系列 2 – GCC 編譯過(guò)程介紹 下篇文章:ARM 嵌入式 C 入門(mén)及漸進(jìn) 3 – GCC attribute ((weak)) 弱符號(hào)使用 上篇文章 ARM 嵌入式 編譯系列 2 – GCC 編譯過(guò)程介紹 已經(jīng)介紹過(guò)了具體的編譯流程,本篇文章主要介紹變過(guò)程中常見(jiàn)的

    2024年02月13日
    瀏覽(51)
  • 【ARM 嵌入式 編譯系列 3.5 -- gcc 鏈接參數(shù)介紹】

    請(qǐng)閱讀 【嵌入式開(kāi)發(fā)學(xué)習(xí)必備專(zhuān)欄 之 ARM GCC 編譯專(zhuān)欄】 上篇文章【ARM 嵌入式 編譯系列 3.4 – 查看所依賴(lài)庫(kù)文件的路徑 詳細(xì)介紹】一直在提 鏈接參數(shù) ,那么鏈接參數(shù)有哪些,它們又有什么作用呢? 如前一篇文章中的的鏈接參數(shù)到底是什么意思呢? -L : 指定了 鏈接庫(kù)的路徑

    2024年01月17日
    瀏覽(44)
  • 【ARM 嵌入式 編譯系列 3.4 -- libgcc.a 詳細(xì)介紹】

    【ARM 嵌入式 編譯系列 3.4 -- libgcc.a 詳細(xì)介紹】

    請(qǐng)閱讀 【嵌入式開(kāi)發(fā)學(xué)習(xí)必備專(zhuān)欄 之 ARM GCC 編譯專(zhuān)欄】 libgcc 是GCC的一部分。C語(yǔ)言不僅僅是由編譯器構(gòu)成,還包括了一個(gè)標(biāo)準(zhǔn)庫(kù)。編譯器在 GCC包里 ,標(biāo)準(zhǔn)庫(kù)則位于 GNU C庫(kù)里 ,即glibc包里。C編譯器(cc1)肯定是要依賴(lài) glibc庫(kù)才能正常運(yùn)行。 但是編譯器本身還使用了一個(gè)內(nèi)部

    2024年01月20日
    瀏覽(23)
  • 【ARM 嵌入式 編譯 Makefile 系列 2 - Makefile 如何打印信息】

    請(qǐng)閱讀 【ARM GCC Makefile 編譯專(zhuān)欄導(dǎo)讀】 下篇文章:【ARM 嵌入式 編譯 Makefile 系列 2.1 - Makefile info,warn, error 打印詳細(xì)介紹】 上篇文章:【ARM 嵌入式 編譯 Makefile 系列 1 - Makefile 如何調(diào)用 shell 腳本】 在Makefile中,我們可以使用echo命令來(lái)打印信息。這種方法適用于大多數(shù)的 UNI

    2024年02月12日
    瀏覽(47)
  • 【ARM 嵌入式 編譯系列 4.1 -- GCC 編譯屬性 likely與unlikely 學(xué)習(xí)】

    請(qǐng)閱讀 【ARM GCC 編譯專(zhuān)欄導(dǎo)讀】 上篇文章:ARM 嵌入式 編譯系列 4 – GCC 編譯屬性 __read_mostly 介紹 下篇文章: ARM 嵌入式 編譯系列 4.2 – GCC 鏈接規(guī)范 extern “C“ 介紹 likely 和 unlikely 是GCC編譯器提供的一種代碼優(yōu)化特性,這兩個(gè)宏用于告訴編譯器某個(gè)條件判斷的結(jié)果是真還是假

    2024年02月12日
    瀏覽(53)
  • 【ARM 嵌入式 編譯系列 3.6 -- 刪除lib中的某個(gè)文件】

    請(qǐng)閱讀 【嵌入式開(kāi)發(fā)學(xué)習(xí)必備專(zhuān)欄 之 ARM GCC 編譯專(zhuān)欄】 比如,如果要?jiǎng)h除 libc.a 靜態(tài)庫(kù)中的特定對(duì)象文件并重新使用這個(gè)靜態(tài)庫(kù),在終端中可以使用 ar 命令。 ar 是一個(gè)歸檔工具,它可以創(chuàng)建、修改、提取以及列出歸檔庫(kù)文件(如 .a 文件)的內(nèi)容。 下面是刪除 libc.a 中指定

    2024年01月25日
    瀏覽(51)
  • 【ARM 嵌入式 編譯系列 7.3 -- GCC 鏈接腳本中 DISCARD 與 .ARM.exidx】

    【ARM 嵌入式 編譯系列 7.3 -- GCC 鏈接腳本中 DISCARD 與 .ARM.exidx】

    請(qǐng)閱讀 【嵌入式開(kāi)發(fā)學(xué)習(xí)必備專(zhuān)欄 之 ARM GCC 編譯專(zhuān)欄】 在移植 RT-Thread 到 cortex-m33(RA4M2)上的時(shí)候,在編譯的時(shí)候遇到下面問(wèn)題:

    2024年01月23日
    瀏覽(73)
  • 【ARM 嵌入式 編譯系列 4 -- linux 編譯屬性 __read_mostly 介紹】

    請(qǐng)閱讀 【ARM GCC 編譯專(zhuān)欄導(dǎo)讀】 上篇文章:【ARM 嵌入式 編譯系列 3.3 – gcc 動(dòng)態(tài)庫(kù)與靜態(tài)庫(kù)的鏈接方法介紹】 下篇文章:【ARM 嵌入式 編譯系列 4.1 – GCC 編譯屬性 likely與unlikely 學(xué)習(xí)】 __read_mostly 是一個(gè)在Linux內(nèi)核編程中用到的宏定義,這是一個(gè)gcc編譯器的屬性,用于告訴編

    2024年02月13日
    瀏覽(26)
  • 【ARM 嵌入式 編譯系列 2.5 -- GCC 編譯參數(shù)學(xué)習(xí) --specs=nano.specs選項(xiàng) 】

    請(qǐng)閱讀 【嵌入式開(kāi)發(fā)學(xué)習(xí)必備專(zhuān)欄 之 ARM GCC 編譯專(zhuān)欄】 ARM 工具鏈 ( arm-none-eabi- ) 包括了一個(gè)叫作 --specs 的編譯器和鏈接器選項(xiàng),這個(gè)選項(xiàng)允許用戶(hù)指定一個(gè)或多個(gè) “specs” 文件,以影響編譯或鏈接階段的行為。Specs 文件包含一系列的命令行參數(shù),這些參數(shù)可以是編譯器選項(xiàng)

    2024年01月22日
    瀏覽(29)
  • 【ARM 嵌入式 編譯系列 5 -- GCC 內(nèi)建函數(shù) __builtin 介紹】

    請(qǐng)閱讀 【ARM GCC 編譯專(zhuān)欄導(dǎo)讀】 上篇文章:ARM 嵌入式 編譯系列 4.2 – GCC 鏈接規(guī)范 extern “C“ 介紹 下篇文章:ARM 嵌入式 編譯系列 6 – GCC objcopy, objdump, readelf, nm 介紹 GCC提供了一些專(zhuān)門(mén)的功能,用于訪問(wèn)特定的硬件指令或者實(shí)現(xiàn)特定的優(yōu)化,它們被稱(chēng)為\\\" __builtin \\\"函數(shù)。 這些

    2024年02月13日
    瀏覽(96)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包