nm 命令 程序符号信息查看
http://www.cnblogs.com/wangkangluo1/archive/2012/07/02/2572438.html
用途
显示关于对象文件、可执行文件以及对象文件库里的符号信息。
语法
nm [ -A] [ -C] [ -X {32|64|32_64}] [ -f] [ -h ] [ -l ] [ -p ] [ -r] [ -T ] [ -v] [ -B| -P] [ -e| -g | -u] [ -d| -o| -x| -tFormat ] File ...
描述
nm 命令显示关于指定 File 中符号的信息,文件可以是对象文件、可执行文件或对象文件库。 如果文件没有包含符号信息,nm 命令报告该情况,但不把它解释为出错条件。 nm 命令缺省情况下报告十进制符号表示法下的数字值。
nm 命令把以下符号信息写入标准输出:
- 库或对象名
如果您指定了 -A 选项,则 nm 命令 只报告与该文件有关的或者库或者对象名。
- 符号名称
- 符号类型
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 未定义符号。 - 值
- 大小
如果可应用,nm 命令报告与符号有关的大小。
标志
| -A | 每行或者显示全路径名称或者显示对象库名。 |
| -B | 在 Berkeley 软件分发(BSD)格式中显示输出:
值 类型 名称 |
| -C | 限制解码(demangle) C++ 名称。缺省是解码所有 C++ 符号名。
注:
C++ 对象文件中的符号在被使用前它们的名称已经被解码了。
|
| -d | 用十进制显示符号的值和大小。这是缺省的。 |
| -e | 只显示静态的和外部的(全局)符号。 |
| -f | 显示完整的输出,包括冗余的 .text、 .data 以及 .bss 符号,这些在通常都是被限制的。 |
| -g | 只显示外部的(全局)符号。 |
| -h | 限制输出头数据的显示。 |
| -l | 通过给 WEAK 符号的编码键附加一个 * 来区分 WEAK 和 GLOBAL 符号。 如果和 -P 选项一起使用, WEAK 符号的符号类型显示如下:
|
| -o | 用八进制而不是十进制数来显示符号的值和大小。 |
| -P | 以标准可移植输出格式显示信息:
库/对象名 名称 类型 值 大小 该格式以十六进制符号表示法显示数字值,除非您用 -t、-d 或 -o 标志指定不同的格式。 如果您指定了 -A 标志 -P 标志只显示 库/对象名字段。同样,-P 标志只显示大小适用的符号大小字段。 |
| -p | 不排序。输出按符号表顺序打印。 |
| -r | 倒序排序。 |
| -T | 把可能会溢出它的列的每个名字截短,使显示的名字的最后一个字符是星号(*)。 缺省情况下,nm 显示列出的符号的全名,并且一个比为其设置的列的宽度长的名称会引起名称后的每个列无法对齐。 |
| -t Format | 显示指定格式下的数字值,其中 Format 参数是以下符号表示法之一:
|
| -u | 只显示未定义符号。 |
| -v | 按值而不是按字母表顺序排序输出。 |
| -x | 用十六进制而不是十进制数来显示符号的值和大小。 |
| -X mode | 指定 nm 应该检查的对象文件的类型。 mode 必须是下列之一:
缺省是处理 32 位对象文件(忽略 64 位对象)。 mode 也可以 OBJECT_MODE 环境变量来设置。例如,OBJECT_MODE=64 使 nm 处理任何 64 位对象并且忽略 32 位对象。 -X 标志覆盖 OBJECT_MODE 变量。 |
退出状态
该命令返回下列出口值:
| 0 | 成功完成。 |
| >0 | 发生错误。 |
示例
- 列出 a.out 对象文件的静态和外部符号,请输入:
nm -e a.out
- 以十六进制显示符号大小和值并且按值排序符号,请输入:
nm -xv a.out
- 显示 libc.a 中所有 64 位对象符号,忽略所有 32 位对象:
nm -X64 /usr/lib/libc.a
nm 命令 程序符号信息查看的更多相关文章
- nm命令中符号类型详解
摘自http://blog.csdn.net/solmyr_biti/article/details/6565479 nm命令介绍的很多,但大多不介绍其函数符号标志的含义.最近在调试动态库时常用到,其 ...
- Linux学习总结(十一)—— Linux常用命令:版本信息查看(RedHat、CentOS、Debian、Ubuntu、Fedora、Oracle)
这篇文章收集了CentOS.Oracle.RedHat等系统查看发行版本.内核版本.位数的方法,欢迎补充. 系统 发行版本 -- 内核版本.位数 RedHat cat /etc/issue cat / ...
- 怎么查看二进制文件内容?linux下nm命令告诉你!
linux下强大的文件分析工具 -- nm 什么是nm nm命令是linux下自带的特定文件分析工具,一般用来检查分析二进制文件.库文件.可执行文件中的符号表,返回二进制文件中各段的信息. 目标文件. ...
- Centos硬件信息查看命令
[root@yan-001 ~] # uname -a # 查看内核/操作系统/CPU信息的linux系统信息命令 [root@yan-001 ~] # head -n 1 /etc/issue # ...
- linux基础之用户登录信息查看命令
用户登录信息查看命令 1.who命令 同一个账号通过不同终端登录也属于不同的登录信息,这里不同的终端包含虚拟终端和模拟终端,因为一个用户通过一个终端登录属于一个session 基本介绍 打印当前系统上 ...
- (转)IBM AIX系统硬件信息查看命令(shell脚本)
IBM AIX系统硬件信息查看命令(shell脚本) 原文:http://blog.itpub.net/22085031/viewspace-1054015/ 查看IBM AIX系统的主机型号.序列号 ...
- Linux—ps -ef 命令输出信息的具体含义(显示所有正在运行的命令程序)
linux 中使用 ps -ef 输出参数的具体含义 功能:显示所有正在运行的命令程序 UID: 说明该程序被谁拥有PID:就是指该程序的 IDPPID: 就是指该程序父级程序的 IDC: 指的是 C ...
- ar命令和nm命令(建库!)
ar 命令详解 今天,跟着我们的技术大牛学了不少东西,首先就是这个ar命令啦. 当我们的程序中有经常使用的模块,而且这些模块在其他程序中也会用到,为了实现代码重用减少软件开发周期,我们可以将它们生成库 ...
- linux下nm命令的使用
linux下强大的文件分析工具 -- nm 什么是nm nm命令是linux下自带的特定文件分析工具,一般用来检查分析二进制文件.库文件.可执行文件中的符号表,返回二进制文件中各段的信息. 目标文件. ...
随机推荐
- 你的C/C++程序为什么无法运行?揭秘Segmentation fault (1)
什么让你对C/C++如此恐惧? 晦涩的语法?还是优秀IDE的欠缺? 我想那都不是问题,最多的可能是一个类似这样的错误: 段错误(Segmentation fault) 这是新手无法避免的错误,也是老手 ...
- How to exit the entire application from a Python thread?
If all your threads except the main ones are daemons, the best approach is generally thread.interrup ...
- 计算机音频基础-PCM简介
我们在音频处理的时候经常会接触到PCM数据:它是模拟音频信号经模数转换(A/D变换)直接形成的二进制序列,该文件没有附加的文件头和文件结束标志. 声音本身是模拟信号,而计算机只能识别数字信号,要在计算 ...
- thread_indent
http://blog.csdn.net/justlinux2010/article/details/10269033
- spring mvc Controller中使用@Value无法获取属性值
在使用spring mvc时,实际上是两个spring容器: 1,dispatcher-servlet.xml 是一个,我们的controller就在这里,所以这个里面也需要注入属性文件 org.sp ...
- IE中Ext的comboBox跑到页面左上角
{ xtype:'combo', width:100, //id:'exTypeCom', name:'exType', hiddenName:'exType', displayField:'text ...
- 【centOS】centos7 查看和关闭防火墙
查看防火墙状态 firewall-cmd --state running代表防火墙正在运行 停止firewall systemctl stop firewalld.service 禁止firewall ...
- [翻译] MZTimerLabel 用作秒表或者倒计时
MZTimerLabel 用作秒表或者倒计时 https://github.com/mineschan/MZTimerLabel A handy class for iOS to use UILabe ...
- glassfish3 读不到web程序的jar包
现在项目中用到glassfish3,部署了一个web程序.可以访问到首页,但是在登陆的时候提示找不到数据库的驱动包.这个jar包我是放在web-inf/lib下的.但是glassfish就是报找不到j ...
- Vmware esx/esxi Vlan三种配置模式(VST、EST和VGT)
在Vmware esx/esxi中使用虚拟Lan(Vlan)时,一般是指Vlan Trunk的使用,使用的Vlan配置还有其它三种类型: Virtual Switch Tagging(虚拟交换机标记, ...