nm用法小记
nm用于显示目标文件的符号,也是二进制工具集(info binutils)里的一员
先来看一个例子,源码和对应的命令结果


四部分分别表示的意义
- 符号所在的obj文件名
- 符号的值,这里应该是指符号所在段的偏移地址。
- 符号类型
- 符号名
其中,'3'的符号类型有以下几类,小写表示局部,大写表示全局
|
A |
符号的值不会在连接时发生改变,是固定的 |
|
b\B |
符号在未初始化数据段(BSS) |
|
C |
The symbol is common. Common symbols are uninitialized data. When linking, multiple common symbols may appear with the same name. If the symbol is defined anywhere, the common symbols are treated as undefined references. |
|
D\d |
符号在初始化的数据段里(.data) |
|
G\g |
符号在初始化的数据段里(small objects),个别的允许小数据的目标文件 |
|
N |
符号是调试符号 |
|
p |
符号在stack unwind段里 |
|
R\r |
符号在只读数据段里 |
|
S\s |
符号在未初始化的数据段里(for small objects) |
|
T\t |
符号在代码(text)段(code) |
|
U |
符号未定义 |
|
u |
符号是一个唯一的全局符号 |
命令概述

选项解释
只介绍有用的
|
-a --debug-syms |
显示所有的符号。 |
|
-D --dynamic |
显示动态符号而不是通常的符号,通常用来显示动态库 |
|
-g --extern-only |
只显示外部的(external)符号 |
|
-l --line-numbers |
用调试信息尽量找出符号对应的文件名和行数(有时候会不准确) |
|
-n -V --numeric-sort |
用地址排序符号而不是用名字的字母排序 |
|
-r --reverse-sort |
反转排序序列 |
|
-S --print-size |
以bsd风格同时打印符号的地址和大小 |
|
-s --print-armap |
同时打印出索引(由ar或ranlib生成),可以知道符号是哪个模块的。(用于库文件) |
|
-t radix --radix=radix |
指定基地址数制, d 十进制 o 八进制 x 十六进制 |
|
-u --undefined-only |
只打印未定义的符号 |
|
--size-sort |
以符号的大小排序 |

本文由 刘英皓 创作,采用 知识共享 署名-非商业性使用-相同方式共享 3.0 中国大陆 许可协议进行许可。欢迎转载,请注明出处:
转载自:http://www.cnblogs.com/yinghao1991/p/6395566.html
参考
【1】 man nm
nm用法小记的更多相关文章
- [转]HttpClient的超时用法小记
HttpClient的超时用法小记 HttpClient在使用中有两个超时时间,是一直接触和使用的,由于上次工作中使用httpClient造成了系统悲剧的情况,特地对它的两个超时时间进行了小小的测试, ...
- Matlab norm 用法小记
Matlab norm 用法小记 matlab norm (a) 用法以及实例 norm(A,p)当A是向量时norm(A,p) Returns sum(abs(A).^p)^(1/p), for ...
- linux expect, spawn用法小记
linux expect, spawn用法小记_IT民工_百度空间 linux expect, spawn用法小记 版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明http://sys ...
- [转载]expect spawn、linux expect 用法小记
原文地址:expect spawn.linux expect 用法小记作者:悟世 使用expect实现自动登录的脚本,网上有很多,可是都没有一个明白的说明,初学者一般都是照抄.收藏.可是为什么要这么写 ...
- Shell常见用法小记
shell的简单使用 最近发现shell脚本在平常工作中简直算一把瑞士军刀,很多场景下用shell脚本能实现常用的简单需求,而之前都没怎么学习过shell,就趁机把shell相关的语法和常见用法总结了 ...
- Linq用法小记
一.什么是Linq? LINQ即Language Integrated Query(语言集成查询),LINQ是集成到C#和Visual Basic.NET这些语言中用于提供查询数据能力的一个新特性. ...
- ss命令用法小记
By francis_hao Nov 4,2017 ss是一个查看socket的实用工具 概要 ss [options] [ FILTER ] 描述 ss可以查看socket的统计信息, ...
- printf函数用法小记
By francis_hao Aug 26,2017 C语言中printf函数是一个比较常用的函数,但是常用并不代表完全了解,本文翻译了printf的man手册,介绍了其全部功能(不包括ma ...
- nc用法小记
By francis_hao Jun 30,2017 ncat:连接和重定向套接字 概要 ncat [OPTIONS...] [hostname] [port] 描述 ncat 是一个集 ...
随机推荐
- FIFO队列(First In First Out)和优先队列
queue<类型名> q; q.size() - 返回队列中元素个数 q.empty() - 若队列为空,返回true ,否则返回false q.pop() - 删除队首元素,但不返回其值 ...
- linux redhat 打开防火墙中的某个端口
服务器成功监听了一个端口(如 5500),但是外面连接不进来,telnet其端口不通,解决办法如下(在root用户下): $ /sbin/iptables -I INPUT -p tcp --dpor ...
- Delphi实例之一个简易的浏览器的实现
Delphi实例之一个简易的浏览器的实现 Delphi7的WebBrowser组件提供了很多不错的网页设计的功能,下面做一个简单的浏览器.组件很简单按照下面摆放就行了. 这是运行后的效果 源代码 主页 ...
- vue循环绑定v-model
直接上代码 结构: <repayInput v-if="formData" v-for="(item, index) in formData" :isPw ...
- win10子系统Ubuntu18.04下安装图形界面
前提:windows 10 已经安装WSL(windows subsystem for linux),并能正确运行Bash. 要想使用Linux的图形用户界面通常有两种方法,一种是使用X-Window ...
- Linux-Shell脚本编程-学习-4-Shell编程-操作数字-加减乘除计算
对于任何一种编程语言都很重要的特性就是操作数字的能力,遗憾的是,对于shell脚本来说,这个过程比较麻烦,在shell脚本中有两种途径来进行数学运算操作. 1.expr 最开始的时候,shell提供了 ...
- 【app.json】配置说明,不断更新中
app.json文件用来对微信小程序进行全局配置,决定页面文件的路径.窗口表现.设置网络超时时间.设置多 tab 等. 注意: 1) json配置中键名.键值必须使用双引号,不能使用单引号. 2) 以 ...
- vs code 代码格式化整理
vs code格式化代码的快捷键如下:(来源于这里) On Windows Shift + Alt + F On Mac Shift + Option + F On Ubuntu Ctrl + Shi ...
- zabbix 语音告警
之前的文章中已经实现了zabbix 邮件告警和微信告警,生产环境上测试出消息抵达很及时,但是!万一服务器在大半夜突发故障微信.邮件这些通知都是废物了,大晚上还能听到微信通知吗?显然不可能(我的某朋友就 ...
- ipfs02
IPFS-day02 其他常用操作 添加文件并用文件夹包裹 ipfs add xxx -w 把內容快取到本地,并提供给他人.官网文档 ipfs pin add QmT7TX5vGmFz86V8cDkP ...