nm 命令輸出項解析

2021-06-09 00:05:29 字數 1361 閱讀 8129

0

linux下的nm命令詳解

nm命令的輸出包含三個部分:1 符號值。預設顯示十六進製制,也可以指定; 2 符號型別。小寫表示是本地符號,大寫表示全域性符號(external); 3 符號名稱。 給個例子:

00000000 b .bss

00000000 d .data

00000000 r .rdata

00000000 t .text

u ___main

00000000 t _add

0000000d t _main

00000000 d _num1

00000004 d _num2

u _printf

其中符號名稱的含義:

a 符號值是絕對的。在進一步的連線中,不會被改變。

b 符號位於未初始化資料段(known as bss).

c 共用(common)符號. 共用符號是未初始化的資料。在連線時,多個共用符號可能採用乙個同樣的名字,如果這個符號在某個地方被定義,共用符號被認為是未定義的引用.

d 已初始化資料段的符號

g 已初始化資料段中的小目標(small objective)符號. 一些目標檔案格式允許更有效的訪問小目標資料,比如乙個全域性的int變數相對於乙個大的全域性陣列。

i 其他符號的直接應用,這是gnu擴充套件的,很少用了. n 除錯符號.

r 唯讀資料段符號. s 未初始化資料段中的小目標(small object)符號.

t **段的符號.

u 未定義符號.

v 弱物件(weak object)符號. 當乙個已定義的弱符號被連線到乙個普通定義符號,普通定義符號可以正常使用,當乙個未定義的弱物件被連線到乙個未定義的符號,弱符號的值為0.

w 乙個沒有被指定乙個弱物件符號的弱符號(weak symbol)。 - a.out目標檔案中的刺符號(stabs symbol). 這種情況下,列印的下乙個值是其他字段,描述字段,和型別。刺符號用於保留除錯資訊.

? 未知符號型別,或者目標檔案特有的符號型別.

命令引數

-tradix  --radix=radix符號值得進製。d 十進位制, o 八進位制, x 十六進製制.

-d  --dynamic顯示動態符號,只在物件是動態時有用.

-fformat  --format=format輸出的格式,有"bsd","sysv" 或"posix"可選。預設是「bsd」.

-g  --extern-only只顯示外部符號.

-l  --line-numbers對每乙個符號,使用除錯資訊去查詢檔案名和行號。

-u  --undefined-only只顯示未定義的符號.

--defined-only只顯示已定義的符號.--help

vmstat輸出項解釋

輸出項的解釋如下 procs r列表示執行和等待cpu時間片段的程序數,這個值如果長期大約系統cpu個數,說明cpu不足 b列表示在等待資源的程序數,比如正在等待io或者記憶體交換等等 memory swap列表示切換到交換區的記憶體大小 kb為單位 如果swap的值不為0或者比較大,只要si和so...

vmstat輸出項解釋

輸出項的解釋例如以下 procs r列表示執行和等待cpu時間片段的程序數,這個值假設長期大約系統cpu個數。說明cpu不足 b列表示在等待資源的程序數。比方正在等待io或者記憶體交換等等 memory swap列表示切換到交換區的記憶體大小 kb為單位 假設swap的值不為0或者比較大,僅僅要si...

nm命令介紹

nm命令 它用來列出乙個目標檔案中的各種符號。nm命令還是比較簡單而且強大的。它用來列出乙個目標檔案中的各種符號。符號的種類很多,以下是一些常見的符號型別 nm輸出字元含義r read only symbol.比如在 中有乙個const maxdata 3095 則maxdata就是乙個read o...