linux,nm命令
1、nm命令簡介:
nm命令是linux下自帶的特定文件分析工具,一般用來檢查分析二進制文件、庫文件、可執行文件中的符號表,返回二進制文件中各段的信息。
目標文件:常說的目標文件是程序文件(.c/.cpp,.h)經過預編譯,編譯,彙編過程生成的二進制文件,不經過鏈接過程,編譯生成指令爲:
gcc(g++) -c file.c(file.cpp)
將生成對應的file.o文件,file.o即爲二進制文件
庫文件:分爲靜態庫和動態庫,這裏不做過多介紹,庫文件是由多個二進制文件打包而成,生成的.a文件,示例:
ar -rsc liba.a test1.o test2.o test3.o
將test1.o test2.o test3.o三個文件打包成liba.a庫文件
可執行文件:可執行文件是由多個二進制文件或者庫文件(由上所得,庫文件其實是二進制文件的集合)經過鏈接過程生成的一個可執行文件,對應windows下的.exe文件,可執行文件中有且僅有一個main()函數(用戶程序入口,一般由bootloader指定,當然也可以改),一般情況下,二進制文件和庫文件中是不包含main()函數的,但是在linux下用戶有絕對的自由,做一個包含main函數的庫文件也是可以使用的。
上述三種文件的格式都是二進制文件。
2、nm命令功能:
目標文件、庫文件中、可執行文件用編輯器是無法查看其內容的(亂碼),所以當我們有這個需求(例如debug,查看內存分佈的時候)去查看一個二進制文件裏包含了哪些內容時,這時候就將用到一些特殊工具,linux下只有nm命令可以。
3、用法:
man nm
4、常用命令參數:
-A 或-o或 --print-file-name:打印出每個符號屬於的文件
-a或--debug-syms:打印出所有符號,包括debug符號
-B:BSD碼顯示
-C或--demangle[=style]:對低級符號名稱進行解碼,C++文件需要添加
--no-demangle:不對低級符號名稱進行解碼,默認參數
-D 或--dynamic:顯示動態符號而不顯示普通符號,一般用於動態庫
-f format或--format=format:顯示的形式,默認爲bsd,可選爲sysv和posix
-g或--extern-only:僅顯示外部符號
-h或--help:國際慣例,顯示命令的幫助信息
-n或-v或--numeric-sort:顯示的符號以地址排序,而不是名稱排序
-p或--no-sort:不對顯示內容進行排序
-P或--portability:使用POSIX.2標準
-V或--version:國際管理,查看版本
--defined-only:僅顯示定義的符號
-
查詢蘋果手機序列號的方法
1、首先打開設置,選擇通用點擊關於本機,然後長按序列號,點擊拷貝,返回桌面。2、打開safari,接着進入蘋果官網,點擊左上角的兩道槓圖標,點擊技術支持,點擊搜索支持框,點擊快速鏈接的保修狀態查詢,最後輸入序列號,輸入驗證碼,點擊繼續即可查看。...
-
QQ怎麼恢復退出來的羣
21世紀是互聯網信息時代,互聯網聊天軟件發揮重要信息溝通作用,一些我們不需要的聊天羣會選擇退出,也會由於不小心或者別的原因退出了qq羣,那麼退出的聊天羣該怎麼恢復呢?退出的qq羣只有羣主能進行恢復操作,管理員不能恢復,而且只能恢復被羣主或管理員刪除的羣成員。而...
-
oppo手機怎樣解鎖密碼
1、在頁面上嘗試着輸入鎖屏密碼。2、當連續輸入6次錯誤密碼後,就會出現“手機已鎖定”的頁面。3、點擊“忘記密碼”,進入到身份驗證的頁面。4、輸入安全問題的答案,然後點擊右上角的驗證。5、完成身份驗證後,即可重新設置密碼。...
-
電子表格忘記了密碼怎麼打開
我們在工作中經常會使用到Excel表格,如果這個表格的內容非常重要,並且不能夠輕易外露的話,可以設置一個保護密碼,但是如果表格的密碼忘記了,應該怎麼打開呢?受保護的Excel文檔是無法修改的,輸入內容就會出現要求輸入密碼的提示框,我們修改文件的後綴名爲rar,再回車確定...