zoukankan      html  css  js  c++  java
  • 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:只显示每个目标文件中定义的符号。

  • 相关阅读:
    LCA最近公共祖先Tarjan(离线)
    51nod 1135 原根
    51nod 1134最长递增子序列
    51nod 1130 斯特林公式
    51nod 1186 Miller-Rabin素数测试
    51Nod 1257 背包问题 V3
    另类求组合数
    Gym
    msp430项目编程45
    msp430项目编程44
  • 原文地址:https://www.cnblogs.com/openix/p/2431781.html
Copyright © 2011-2022 走看看