色偷偷偷亚洲综合网另类,亚洲欧美另类在线观看,欧美午夜激情在线,久久久精品一区

當(dāng)前位置:首頁 > 嵌入式培訓(xùn) > 嵌入式學(xué)習(xí) > 講師博文 > nm命令使用詳解,讓你加快學(xué)習(xí)速度

nm命令使用詳解,讓你加快學(xué)習(xí)速度 時間:2018-07-20      來源:未知

nm 命令詳解

符號是每個ELF文件的一個重要部分,因為它保存了程序?qū)崿F(xiàn)或使用的所有(全局)變量和函數(shù)。符號表中保存了查找程序符號、為符號賦值、重定位符號所需要的全部信息。Linux中 nm用來列出目標文件的符號表;如果nm指令沒有指出目標文件,則nm假定目標文件是a.out

1.語法:

nm(選項)(參數(shù))

nm命令

2.輸出

對于每個符號,nm顯示:

·符號值,以選項(見下文)選擇的基數(shù),或默認為十六進制。

·符號類型。 至少使用以下類型; 其他也是,取決于目標文件格式。

如果是小寫,則符號通常是本地的; 如果是大寫,則符號為全局(外部)。然而,有一些為特殊全局符號( u , v 和 w )顯示的小寫符號。

nm命令

3.選項

nm的用法很簡單,以下幾個關(guān)鍵字比較常用:

(1)"-A",列出符號名的時候同時顯示來自于哪個文件。

這在同時列出多個文件(比如一個鏈接庫)的符號時比較有用

(2)"-a",列出所有符號

這將會把調(diào)試符號也列出來。默認狀態(tài)下調(diào)試符號不會被列出。

(3)"-l",列出符號在源代碼中對應(yīng)的行號

指定這個參數(shù)后,nm將利用調(diào)試信息找出文件名以及符號的行號。對于一個已定義符號,將會找出這個符號定義的行號,對于未定義符號,顯示為空

(4)"-n",根據(jù)符號的地址來排序

默認是按符號名稱的字母順序排序的

(5)"-u",只列出未定義符號

同"--undefined-only",而"--defined-only"將只列出已定義符號

4.示例

test.c

test.h

nm命令

main.c

nm命令

nm命令

好, 我們再來看看全局變量的情形, 我們把main.c改為:

1. #include

2. int add(int x, int y)

3. {

4. return x + y;}

5. int aaa;

6. int bbb = 1;

7. char szTest[] = "good";

8. int main()

9. {

10. int ccc = 2;

11. return 0;

12.}

然后用nm分析a.out(注意, 如果只有nm命令, 則默認a.out為其要處理的文件):

1. fs@localhost learn_nm $ ls

2. main.c

3. fs@localhost learn_nm $ gcc main.c

4. fs@localhost learn_nm $ ./a.out

5. fs@localhost learn_nm $ nm a.out

6. 08049538 d _DYNAMIC

7. 08049604 d _GLOBAL_OFFSET_TABLE_

8. 0804847c R _IO_stdin_used

9. w _Jv_RegisterClasses

10.08049528 d __CTOR_END__

11.08049524 d __CTOR_LIST__

12.08049530 D __DTOR_END__

13.0804952c d __DTOR_LIST__

14.08048520 r __FRAME_END__

15.08049534 d __JCR_END__

16.08049534 d __JCR_LIST__

17.08049628 A __bss_start

18.08049618 D __data_start

19.08048430 t __do_global_ctors_aux

20.08048310 t __do_global_dtors_aux

21.08048480 R __dso_handle

22. w __gmon_start__

23.0804842a T __i686.get_pc_thunk.bx

24.08049524 d __init_array_end

25.08049524 d __init_array_start

26.080483c0 T __libc_csu_fini

27.080483d0 T __libc_csu_init

28. U __libc_start_main@@GLIBC_2.0

29.08049628 A _edata

30.08049634 A _end

31.0804845c T _fini

32.08048478 R _fp_hw

33.08048274 T _init

34.080482e0 T _start

35.08049630 B aaa

36.08048394 T add

37.0804961c D bbb

38.08049628 b completed.5963

39.08049618 W data_start

40.0804962c b dtor_idx.5965

41.08048370 t frame_dummy

42.080483a2 T main

43.08049620 D szTest

44.fs@localhost learn_nm$

可以看到, 不僅有add函數(shù), 還有全局變量aaa, bbb和szTest, 要注意, aaa是未初始化的, 所以在Bss段, 而bbb、szTest是初始化了的,所以在Data段。 值得注意的是, 并沒有ccc, 因為ccc是局部變量, nm看不到的。

上一篇:lseek()函數(shù)的原型及使用方法,超詳細

下一篇:套接字是什么?他的定義如此簡單

熱點文章推薦
華清學(xué)員就業(yè)榜單
高薪學(xué)員經(jīng)驗分享
熱點新聞推薦
前臺專線:010-82525158 企業(yè)培訓(xùn)洽談專線:010-82525379 院校合作洽談專線:010-82525379 Copyright © 2004-2022 北京華清遠見科技集團有限公司 版權(quán)所有 ,京ICP備16055225號-5京公海網(wǎng)安備11010802025203號

回到頂部

色偷偷偷亚洲综合网另类,亚洲欧美另类在线观看,欧美午夜激情在线,久久久精品一区
主站蜘蛛池模板: 国产亚洲视频在线观看| 亚洲国产成人精品一区二区 | 国产91精品久久久久久久| 国产精品久久久久77777| 欧美亚洲激情在线| 日韩精品久久久久久久玫瑰园 | 欧美日韩在线免费| 国产精品亚洲精品| 久久精品成人一区二区三区| 最近2019中文字幕第三页视频| 欧美精品videosex牲欧美| 亚洲一区二区三区视频播放| 久久久99久久精品女同性| 国产成人欧美在线观看| 尤物九九久久国产精品的分类| 欧美一级大片视频| 亚洲偷欧美偷国内偷| 日韩美女视频在线观看| 色婷婷综合成人| 国产精品免费视频xxxx| 日韩av一区二区在线| 久久久亚洲成人| 一区二区三区动漫| 日本中文字幕成人| 日韩中文字幕在线观看| 91精品视频在线播放| 在线成人激情视频| 国产精品久久久久久超碰| 久久大大胆人体| 亚洲成人av片在线观看| 51色欧美片视频在线观看| 中文字幕日韩高清| 成人网中文字幕| 隔壁老王国产在线精品| 神马久久久久久| 91在线视频精品| 91国产一区在线| 欧美精品在线网站| 国产精品美女www| 欧美国产日韩视频| 亚洲一区二区三区777|