0linux下的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...