企業(yè)網(wǎng)站微信公眾號的建設(shè)事跡東莞seo整站優(yōu)化
【Linux】使用nm命令查看動態(tài)庫包含的符號表
文章目錄
- 【Linux】使用nm命令查看動態(tài)庫包含的符號表
- 1. `nm`的簡介
- 2. `nm`的使用
- 3. `nm`查找具體的函數(shù)名或變量名
- Reference
1. nm
的簡介
nm
命令來自name的簡寫。nm
命令常用于查看二進(jìn)制文件中的符號表,通常用于靜態(tài)庫和可執(zhí)行文件。對于動態(tài)庫(如 .so
文件),你可以使用nm
命令結(jié)合特定的選項(xiàng)來查看符號表。
2. nm
的使用
假設(shè)你有一個動態(tài)庫libexample.so
,要查看它的符號表,可以運(yùn)行以下命令:
nm -D libexample.so
輸出的結(jié)果可能如下所示:
0000000000001120 T my_functionU printf
0000000000001190 T another_function
nm
命令的輸出通常包含三列信息:
- 符號地址:該符號在內(nèi)存中的地址(如果已加載)。
- 符號類型:例如
T
表示代碼段中的符號(函數(shù)),D
表示數(shù)據(jù)段中的符號(全局變量),U
表示未定義的符號(需要從其他庫解析)。 - 符號名稱:具體的函數(shù)名稱或變量名稱。
3. nm
查找具體的函數(shù)名或變量名
nm
命令可以聯(lián)合使用管道(pipe)|
和篩選命令grep
來查找具體的函數(shù)名,舉個例子:
nm ./libexample.so | grep my_function
就可以從 nm
所呈列的信息中尋找名為my_function
的函數(shù)
Reference
[1]【Linux】nm命令|查看動態(tài)庫包含的函數(shù)符號