查看函数库.a函数符号信息
来源:互联网 发布:国际软件学院英文 编辑:程序博客网 时间:2024/05/16 18:02
一、概述
nm命令可以列出一个函数库文件中的符号表。它对于静态的函数库和共享的函数库都起作用。对于一个给定的函数库,nm命令可以列出函数库中定义的所有符号,包括每个符号的值和类型。还可以给出在原程序中这个函数(符号)是在多少行定义的,不过这必须要求编译该函数库的时候加“-l”选项。
关于符号的类型,这里我们再多讨论一下。符号的类型是以一个字母的形式显示的,小写字母表示这个符号是本地(local)的,而大写字母则表示这个符号是全局的(global,externel)。一般来说,类型有一下几种:T、D、B、U、W。各自的含义如下:T表示在代码段中定义的一般变量符号;D表示时初始化过的数据段;B表示初始化的数据段;U表示没有定义的,在这个库里面使用了,但是在其他库中定义的符号;W,weak的缩写,表示如果其他函数库中也有对这个符号的定义,则其他符号的定义可以覆盖这个定义。
二、nm命令详述:
用途
查看函数库.a函数符号信息显示关于对象文件、可执行文件以及对象文件库里的符号信息。
语法
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 命令显示关于指定 File 中符号的信息,文件可以是对象文件、可执行文件或对象文件库。如果文件没有包含符号信息,nm 命令报告该情况,但不把它解释为出错条件。 nm 命令缺省情况下报告十进制符号表示法下的数字值。
nm 命令把以下符号信息写入标准输出:库或对象名,如果您指定了 -A 选项,则 nm 命令只报告与该文件有关的或者库或者对象名。
nm 命令使用以下符号(用同样的字符表示弱符号作为全局符号)之一来表示文件符号类型:
- 符号名称 符号类型
如果可应用,nm 命令报告与符号有关的大小。
标志
-A每行或者显示全路径名称或者显示对象库名。-B在 Berkeley 软件分发(BSD)格式中显示输出:值 类型 名称
-C限制解码(demangle) C++ 名称。缺省是解码所有 C++ 符号名。 注:
C++ 对象文件中的符号在被使用前它们的名称已经被解码了。
-d用十进制显示符号的值和大小。这是缺省的。-e只显示静态的和外部的(全局)符号。-f显示完整的输出,包括冗余的 .text、 .data 以及 .bss 符号,这些在通常都是被限制的。-g只显示外部的(全局)符号。-h限制输出头数据的显示。-l通过给 WEAK 符号的编码键附加一个 * 来区分 WEAK 和 GLOBAL 符号。如果和 -P 选项一起使用, WEAK 符号的符号类型显示如下: - V
- Weak Data 符号
- W
- Weak Text 符号
- w
- Weak 未定义符号
- Z
- Weak bss 符号
库/对象名 名称 类型 值 大小
该格式以十六进制符号表示法显示数字值,除非您用 -t、-d 或 -o 标志指定不同的格式。
如果您指定了 -A 标志 -P 标志只显示 库/对象名字段。同样,-P 标志只显示大小适用的符号大小字段。
-p不排序。输出按符号表顺序打印。-r倒序排序。-T把可能会溢出它的列的每个名字截短,使显示的名字的最后一个字符是星号(*)。缺省情况下,nm 显示列出的符号的全名,并且一个比为其设置的列的宽度长的名称会引起名称后的每个列无法对齐。-t Format显示指定格式下的数字值,其中 Format 参数是以下符号表示法之一:- d
- 十进制符号表示法。这是 nm 命令的缺省格式。
- o
- 八进制符号表示法。
- x
- 十六进制符号表示法。
- 32
- 只处理 32 位对象文件
- 64
- 只处理 64 位对象文件
- 32_64
- 处理 32 位和 64 位对象文件
缺省是处理 32 位对象文件(忽略 64 位对象)。 mode 也可以 OBJECT_MODE 环境变量来设置。例如,OBJECT_MODE=64 使 nm 处理任何 64 位对象并且忽略 32 位对象。 -X 标志覆盖 OBJECT_MODE 变量。
注:
nm 命令支持 -- (双连字符)标志。如果文件名会被曲解为一个选项,该标志区别于 File 操作数。例如,要指定文件名以连字符开始,请使用 -- 标志。
退出状态
该命令返回下列出口值:
0成功完成。>0发生错误。示例
- 列出 a.out 对象文件的静态和外部符号,请输入:
nm -e a.out
- 以十六进制显示符号大小和值并且按值排序符号,请输入:
nm -xv a.out
- 显示 libc.a 中所有 64 位对象符号,忽略所有 32 位对象:
nm -X64 /usr/lib/libc.a
文件
/usr/ccs/bin/nm包含 nm 命令。 0 0
- 查看函数库.a函数符号信息
- 查看vmlinux的符号信息
- 查看.a的信息
- nm 命令 程序符号信息查看
- linux/windows下查看目标文件.a/.lib的函数符号名称
- linux/windows下查看目标文件.a/.lib的函数符号名称
- linux 查看 *.a *.so 符号表(zt)
- linux 查看 *.a *.so 符号表(zt)
- linux 查看 *.a *.so 符号表(zt)
- 通用函数库(1) 客户端模拟函数-(提示信息等)
- iOS怎么查看.a静态库所有打包进去的.o文件和函数接口信息?
- 查看linux系统内核信息,lsb_release -a
- 查看静态库(.lib)和动态库(.dll)的导出函数的信息 error LNK2001: 无法解析的外部符号 _Delete
- opencv函数库常用函数
- 函数及函数库
- jstl函数库-length函数
- 函数和函数库
- 【c++函数库】函数总结
- 又一本《增强现实技术导论》
- Unity框架——状态机
- 生产成本和销售成本的区别
- 来杭州一周年
- Android Glide图片框架使用
- 查看函数库.a函数符号信息
- spring4.1+shiro1.2.3+quartz2.2.1
- 《计算机视觉中的数学方法》
- ListView 单条item刷新
- 算法提高 矩阵链乘
- mp3转pcm
- 获取元素CSS值之getComputedStyle方法熟悉
- Installation failed with message INSTALL_CANCELED_BY_USER.
- kafka主要配置