0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

readelf,nm, objdump工具使用的用法和總結(jié)

如意 ? 來源:CSDN ? 作者:CaspianSea ? 2020-06-23 09:34 ? 次閱讀

有時候需要去檢查哪些代碼調(diào)用了某些接口,但是經(jīng)常發(fā)生的問題是,某些模塊,實際上看不到代碼,只能看到庫文件。這種情況下,可借助GNU工具來檢查。

先寫個簡單的測試代碼:

$ cat PCString.h

#ifndef __PCSTRING_H__

#define __PCSTRING_H__

class PCString

{

public

static bool Copy(const char *from, char *to, int size);

};

#endif //__PCSTRING_H__

$ cat PCString.cpp

#include “PCString.h”

bool PCString::Copy(const char *from, char *to, int size)

{

}

g++ -g -c PCString.cpp -o PCString.o

ar -rsv libPCString.a PCString.o

$ cat test2.cpp

#include “PCString.h”

void fun(void)

{

char test[10];

PCString::Copy(“AAAA”, test, 10);

}

g++ test2.cpp -g -c -o test.o

ar -rsv libTest.a test.o

假如,我們要檢查哪些地方調(diào)用了 PCString::Copy(), 但是又看不到test2.cpp文件,只能看到 libTest.a。

1)使用 readelf:

readelf,nm, objdump工具使用的用法和總結(jié)

2)使用 nm

readelf,nm, objdump工具使用的用法和總結(jié)

3)如果 庫文件是 debug版的(可以反匯編出源碼),也可以用 objdump:

readelf,nm, objdump工具使用的用法和總結(jié)

另外,這些工具也可以查詢某個模塊定義哪些可供外部使用的符號。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 工具
    +關(guān)注

    關(guān)注

    4

    文章

    307

    瀏覽量

    27667
  • 虛擬機
    +關(guān)注

    關(guān)注

    1

    文章

    899

    瀏覽量

    27978
  • gun
    gun
    +關(guān)注

    關(guān)注

    0

    文章

    6

    瀏覽量

    7624
收藏 人收藏

    評論

    相關(guān)推薦

    無法在Armv7l樹莓派3b+上運行binutils-esp32ulp工具鏈怎么解決?

    esp32ulp-elf-addr2lineesp32ulp-elf-ld esp32ulp-elf-readelf esp32ulp-elf-aresp32ulp-elf-ld.bfdesp32ulp-elf-size
    發(fā)表于 06-24 06:26

    求信號處理高級工具包的用法資料

    求信號處理高級工具包的用法資料
    發(fā)表于 08-14 14:57

    關(guān)于typedef的用法總結(jié)

    關(guān)于typedef的用法總結(jié)不管實在C還是C++代碼中,typedef這個詞都不少見,當然出現(xiàn)頻率較高的還是在C代碼中。typedef與#define有些相似,但更多的是不同,特別是在一些復(fù)雜的用法
    發(fā)表于 09-25 09:11

    可執(zhí)行映像文件objdump反匯編代碼.txt,objdump應(yīng)該怎么翻譯

    可執(zhí)行映像文件objdump反匯編代碼.txt,objdump應(yīng)該怎么翻譯
    發(fā)表于 06-08 16:34

    查詢Linux應(yīng)用程序運行依賴哪些庫的方法

    )objdump -x AppName |grep NEED 如: arm_v5t_le-objdump -x test |grep NEED 三法: $(CROSS_COMPILE)readelf
    發(fā)表于 08-19 07:42

    學(xué)習(xí)ARM反匯編工具objdump和一個簡單實例 精選資料分享

    學(xué)習(xí)ARM反匯編工具objdump和一個簡單實例 --參考朱有鵬ARM裸機編程1、反匯編的原理&為什么需要反匯編arm-linux-objdump -D led.elf > led_elf.disobjdump是gcc
    發(fā)表于 07-16 07:13

    OK3399開發(fā)板的程序的庫依賴關(guān)系是什么?

    我想知道OK3399開發(fā)板的程序的庫依賴關(guān)系,發(fā)現(xiàn)objdump 、ldd、readelf、apt等命令都沒有,還有辦法查看嗎?
    發(fā)表于 12-30 07:31

    總結(jié)一下STM32串口的用法

    STM32CubeMX_定時器中斷_PWM前兩節(jié)簡單的總結(jié)了GPIO, EXTI, TIMER的相關(guān)用法, 本節(jié)總結(jié)一下STM32串口的用法, 依然是原理性的東西不多講, 直接開干.先
    發(fā)表于 02-10 06:17

    enum的用法總結(jié)

    用法一:常量 在JDK1.5 之前,我們定義常量都是: public static fianl。 ?,F(xiàn)在好了,有了枚舉,可以把相關(guān)的常量分組到一個枚舉類型里,而且枚舉提供了比常量更多的方法
    發(fā)表于 09-27 15:22 ?1次下載

    Java數(shù)組的常用方法_Java:數(shù)組工具類Arrays類的常用方法的用法及代碼

    本文主要詳細介紹了Java數(shù)組的常用方法以及數(shù)組工具類Arrays類的常用方法的用法及代碼。
    發(fā)表于 01-29 10:25 ?2901次閱讀

    Linux后臺開發(fā)常用調(diào)試工具

    nm 程序可用于列舉符號及其類型和值,但是,要更仔細地研究目標文件中這些命名段的內(nèi)容,需要使用功能更強大的工具。其中兩種功能強大的工具objdump
    的頭像 發(fā)表于 08-14 16:26 ?1449次閱讀

    用于查看目標文件或可執(zhí)行文件的組成信息的命令:objdump命令

    1.功能簡介 objdump 命令是 GNU Binutils 二進制工具集的一員,用于查看目標文件或可執(zhí)行文件的組成信息,以可讀的形式打印二進制文件的內(nèi)容。 2.命令格式 objdump
    的頭像 發(fā)表于 02-09 18:17 ?2982次閱讀
    用于查看目標文件或可執(zhí)行文件的組成信息的命令:<b class='flag-5'>objdump</b>命令

    【RT-Thread學(xué)習(xí)筆記】使用objdump反匯編

    如何使用objdump進行反匯編?
    的頭像 發(fā)表于 07-30 14:03 ?2675次閱讀
    【RT-Thread學(xué)習(xí)筆記】使用<b class='flag-5'>objdump</b>反匯編

    Qt Quick開發(fā)工具總結(jié)

    在實際開發(fā)過程中,Qt官方提供了一些工具和實用程序來輔助應(yīng)用開發(fā),特別是對Qt Quick的開發(fā)。本文將對這些工具和實用程序做一些介紹和總結(jié)。
    的頭像 發(fā)表于 09-06 14:59 ?1806次閱讀

    Linux系統(tǒng)維護命令的用法

    Linux有很多命令,每個命令基本可以用一篇文章介紹,本文僅簡單總結(jié)一些常用系統(tǒng)維護命令的用法
    的頭像 發(fā)表于 04-17 14:57 ?965次閱讀
    Linux系統(tǒng)維護命令的<b class='flag-5'>用法</b>