nm

nm

       列出目标文件中的符号信息。

       每个符号都列出符号值及符号类型、符号名。

       小写则符号为局部符号,大写则说明符号为全局符号(注意有的既不是局部符号也不是全局符号,例如引入的调试符号)。

A:符号值为绝对值,在以后的链接过程中不会改变。

B,b:符号在为初始化的数据段(BSS)

C:The symbol is common.Common symbol是未初始化的数据,在链接过程中多个common symbol都显示着同样的名字,若符号在某处被定义为过,则common symbol被视为undefinde references。

D,d:data 段

G,g:是一个专门对small objects进行初始化的data段。

i:对于ELF格式文件,表示这个符号是个间接函数,这表明这一符号被一重定位段引用,且该重定位只有在运行时才完成。

N:调试符号

P:符号是在一个satac unwing section

R,r:只读data section

S,s:在bss段中的small objects中的符号。

T,t:Text section

U:未定义

 

?:未知符号类型

-A,-o,--print-file-name:在每个符号显示其所对应的文件名。

-a,--debug-syms:显示所有符号。

-C,-demangle[=style]:解码低级符号名称为用户级名称,将一些有系统加入的下划线去掉,这使得更容易读取函数名,每一种编译器都拥有不同的编码方式,style由具体编译器决定。

 

--no-demangle:不要解码低级符号(默认)

-D,--dynamic:显示dynamic symbols 而不是normal symbols,这只对动态目标有效,例如共享库。

-f format,--format=format:

       使用输出文件的格式做为格式,例如bsd,sysv,posix

-B:the same as –format=bsd (for compatibility with MIPS nm)

-g,--extern-only:只显示具有外部连接属性的符号。

--plugin name:使用指定的插件来解析其它目标格式。

-I,--line-numbers:

       对于defined symbol,查找符号的地址的行号

       对于undefined symbol查找the line number of a relocation entry which refers to the symbol.

-n,-v,--numeric-sort:将符号以其地址的数值进行排序,而非字母表排序。

-p,--no-sort:不要顺序排符号,以它们相遇的顺序排序。

-P,--portability:即-f posix

-s,--print-armap:listing symbols from archive.

--size-sort:size 由本符号地址和下一比较大的符号的地址之差。

--special-syms:对与目标机来说有特殊意义的符号。

-t radix,--radix=radix:指定显示数值的基(d,o,x)

--target=bfdname:指定目标文件的格式。

--undefined-only,-u:显示未定义的符号。

-defined-only:只显示每个目标文件中定义的符号。

posted on 2012-04-04 10:50  阿加  阅读(494)  评论(0编辑  收藏  举报

导航