5nm是5納米的意思。
專業(yè)從事成都網(wǎng)站制作、網(wǎng)站設(shè)計,高端網(wǎng)站制作設(shè)計,成都小程序開發(fā),網(wǎng)站推廣的成都做網(wǎng)站的公司。優(yōu)秀技術(shù)團隊竭力真誠服務(wù),采用H5網(wǎng)站設(shè)計+CSS3前端渲染技術(shù),成都響應(yīng)式網(wǎng)站建設(shè),讓網(wǎng)站在手機、平板、PC、微信下都能呈現(xiàn)。建站過程建立專項小組,與您實時在線互動,隨時提供解決方案,暢聊想法和感受。
“nm”是一個單位,中文意思是“納米”。1nm等于.1cm,而5nm的寬度是可以想象的,小到我們?nèi)庋劭赡芨痉直娌怀鰜怼?/p>
1.5納米相當于頭發(fā)的萬分之一。一根頭發(fā)大約有6萬納米,所以5納米幾乎是頭發(fā)的萬分之一。以高通7nm驍龍8cx芯片面積為例,直徑3mm的晶圓上有532個核心,水平方向最多22個核心,垂直方向最多36個核心。經(jīng)計算,每個芯片的面積約為112平方毫米(13.5×8.3毫米)。
簡單說的話,就是可以幫你列舉出該目標中定義的符合要求的符號。要求可以很多,主要通過參數(shù)實現(xiàn):外部引入的、內(nèi)部定義的、動態(tài)的... 也可以添加參數(shù)使nm同時打印行號、文件名等相關(guān)信息。
nm 將找到的符號值使用十六進制缺省表示,并在函數(shù)前添加其類型,類型主要有:
簡單的舉個栗子:
有了nm的分析結(jié)果搭配上符號定義的解釋,就可以很愉快的找到想要的符號啦!
這是一個非常罕見的命令,搞Linux開發(fā)的人, 才可能會用到nm命令,其他老男孩Linux運維等幾乎用不到。
nm命令是names的縮寫, nm命令主要是用來列出某些文件中的符號(說白了就是一些函數(shù)和全局變量等),具體查看,可以百度 搜 linux nm。
不是C語言吧?是系統(tǒng)命令。用來列舉object文件(比如編譯出的a.out)的symbols.
用法是:
nm [-a|--debug-syms] [-g|--extern-only]
[-B] [-C|--demangle[=style]] [-D|--dynamic]
[-S|--print-size] [-s|--print-armap]
[-A|-o|--print-file-name]
[-n|-v|--numeric-sort] [-p|--no-sort]
[-r|--reverse-sort] [--size-sort] [-u|--undefined-only]
[-t radix|--radix=radix] [-P|--portability]
[--target=bfdname] [-fformat|--format=format]
[--defined-only] [-l|--line-numbers] [--no-demangle]
[-V|--version] [-X 32_64] [--help] [objfile...]
具體而言,nm用來列出目標文件的符號清單。
如果沒有為nm命令指出目標文件,則nm假定目標文件是a.out。下面列出該命令的任選項,大部分支持“-”開頭的短格式和“-“開頭的長格式。
-A、-o或--print-file-name:在找到的各個符號的名字前加上文件名,而不是在此文件的所有符號前只出現(xiàn)文件名一次。
例如nmlibtest.a的輸出如下:
CPThread.o:
00000068TMain__8CPThreadPv
00000038TStart__8CPThread
00000014T_._8CPThread
00000000T__8CPThread
00000000?__FRAME_BEGIN__
…………………………………
則nm-A的輸出如下:
libtest.a:CPThread.o:00000068TMain__8CPThreadPv
libtest.a:CPThread.o:00000038TStart__8CPThread
libtest.a:CPThread.o:00000014T_._8CPThread
libtest.a:CPThread.o:00000000T__8CPThread
libtest.a:CPThread.o:00000000?__FRAME_BEGIN__
…………………………………………………………..
-a或--debug-syms:顯示調(diào)試符號。
-B:等同于--format=bsd,用來兼容MIPS的nm。
-C或--demangle:將低級符號名解碼(demangle)成用戶級名字。這樣可以使得C 函數(shù)名具有可讀性。
-D或--dynamic:顯示動態(tài)符號。該任選項僅對于動態(tài)目標(例如特定類型的共享庫)有意義。
-fformat:使用format格式輸出。format可以選取bsd、sysv或posix,該選項在GNU的nm中有用。默認為bsd。
-g或--extern-only:僅顯示外部符號。
-n、-v或--numeric-sort:按符號對應(yīng)地址的順序排序,而非按符號名的字符順序。
-p或--no-sort:按目標文件中遇到的符號順序顯示,不排序。
-P或--portability:使用POSIX.2標準輸出格式代替默認的輸出格式。等同于使用任選項-fposix。
-s或--print-armap:當列出庫中成員的符號時,包含索引。索引的內(nèi)容包含:哪些模塊包含哪些名字的映射。
-r或--reverse-sort:反轉(zhuǎn)排序的順序(例如,升序變?yōu)榻敌?。
--size-sort:按大小排列符號順序。該大小是按照一個符號的值與它下一個符號的值進行計算的。
-tradix或--radix=radix:使用radix進制顯示符號值。radix只能為“d”表示十進制、“o”表示八進制或“x”表示十六進制。
--target=bfdname:指定一個目標代碼的格式,而非使用系統(tǒng)的默認格式。
-u或--undefined-only:僅顯示沒有定義的符號(那些外部符號)。
-l或--line-numbers:對每個符號,使用調(diào)試信息來試圖找到文件名和行號。對于已定義的符號,查找符號地址的行號。對于未定義符號,查找指向符號重定位入口的行號。如果可以找到行號信息,顯示在符號信息之后。
-V或--version:顯示nm的版本號。
--help:顯示nm的任選項。
ar cs libmy.a//創(chuàng)建一個庫
ar rs libmy.a 1.o//增加一個模塊
ar t libmy.a//顯示庫里的模塊
ar d libmy.a 1.o//刪除一個模塊
/usr/ccs/bin/nm
用途
顯示關(guān)于對象文件、可執(zhí)行文件以及對象文件庫里的符號信息。
語法
nm [ -A ] [ -C ] [ -X {32|64|32_64}] [ -f ] [ -h ] [ -l ] [ -p ] [ -r ] [ -T ] [ -v ] [ -B | -P ] [ -e | -g | -u ] [ -d | -o | -x | -t Format ] File ...
描述
nm 命令顯示關(guān)于指定 File 中符號的信息,文件可以是對象文件、可執(zhí)行文件或?qū)ο笪募臁H绻募]有包含符號信息,nm 命令報告該情況,但不把它解釋為出錯條件。 nm 命令缺省情況下報告十進制符號表示法下的數(shù)字值。
nm 命令把以下符號信息寫入標準輸出:
庫或?qū)ο竺?/p>
如果您指定了 -A 選項,則 nm 命令只報告與該文件有關(guān)的或者庫或者對象名。
符號名稱
符號類型
nm 命令使用以下符號(用同樣的字符表示弱符號作為全局符號)之一來表示文件符號類型:
A Global absolute 符號。
a Local absolute 符號。
B Global bss 符號。
b Local bss 符號。
D Global data 符號。
d Local data 符號。
f 源文件名稱符號。
T Global text 符號。
t Local text 符號。
U 未定義符號。
值
大小
如果可應(yīng)用,nm 命令報告與符號有關(guān)的大小。
標志
-A 每行或者顯示全路徑名稱或者顯示對象庫名。
-B 在 Berkeley 軟件分發(fā)(BSD)格式中顯示輸出:
值 類型 名稱
-C 限制解碼(demangle) C++ 名稱。缺省是解碼所有 C++ 符號名。
注:
C++ 對象文件中的符號在被使用前它們的名稱已經(jīng)被解碼了。
-d 用十進制顯示符號的值和大小。這是缺省的。
-e 只顯示靜態(tài)的和外部的(全局)符號。
-f 顯示完整的輸出,包括冗余的 .text、 .data 以及 .bss 符號,這些在通常都是被限制的。
-g 只顯示外部的(全局)符號。
-h 限制輸出頭數(shù)據(jù)的顯示。
-l 通過給 WEAK 符號的編碼鍵附加一個 * 來區(qū)分 WEAK 和 GLOBAL 符號。如果和 -P 選項一起使用, WEAK 符號的符號類型顯示如下:
V
Weak Data 符號
W
Weak Text 符號
w
Weak 未定義符號
Z
Weak bss 符號
-o 用八進制而不是十進制數(shù)來顯示符號的值和大小。
-P 以標準可移植輸出格式顯示信息:
庫/對象名 名稱 類型 值 大小
該格式以十六進制符號表示法顯示數(shù)字值,除非您用 -t、-d 或 -o 標志指定不同的格式。
如果您指定了 -A 標志 -P 標志只顯示 庫/對象名字段。同樣,-P 標志只顯示大小適用的符號大小字段。
-p 不排序。輸出按符號表順序打印。
-r 倒序排序。
-T 把可能會溢出它的列的每個名字截短,使顯示的名字的最后一個字符是星號(*)。缺省情況下,nm 顯示列出的符號的全名,并且一個比為其設(shè)置的列的寬度長的名稱會引起名稱后的每個列無法對齊。
-t Format 顯示指定格式下的數(shù)字值,其中 Format 參數(shù)是以下符號表示法之一:
d
十進制符號表示法。這是 nm 命令的缺省格式。
o
八進制符號表示法。
x
十六進制符號表示法。
-u 只顯示未定義符號。
-v 按值而不是按字母表順序排序輸出。
-x 用十六進制而不是十進制數(shù)來顯示符號的值和大小。
-X mode 指定 nm 應(yīng)該檢查的對象文件的類型。 mode 必須是下列之一:
32
只處理 32 位對象文件
64
只處理 64 位對象文件
32_64
處理 32 位和 64 位對象文件
缺省是處理 32 位對象文件(忽略 64 位對象)。 mode 也可以 OBJECT_MODE 環(huán)境變量來設(shè)置。例如,OBJECT_MODE=64 使 nm 處理任何 64 位對象并且忽略 32 位對象。 -X 標志覆蓋 OBJECT_MODE 變量。
注:
nm 命令支持 -- (雙連字符)標志。如果文件名會被曲解為一個選項,該標志區(qū)別于 File 操作數(shù)。例如,要指定文件名以連字符開始,請使用 -- 標志。
退出狀態(tài)
該命令返回下列出口值:
0 成功完成。
0 發(fā)生錯誤。
示例
列出 a.out 對象文件的靜態(tài)和外部符號,請輸入:
nm -e a.out
以十六進制顯示符號大小和值并且按值排序符號,請輸入:
nm -xv a.out
顯示 libc.a 中所有 64 位對象符號,忽略所有 32 位對象:
nm -X64 /usr/lib/libc.a
文件