nm用于显示目标文件的符号,也是二进制工具集(info binutils)里的一员

先来看一个例子,源码和对应的命令结果

四部分分别表示的意义

  1. 符号所在的obj文件名
  2. 符号的值,这里应该是指符号所在段的偏移地址。
  3. 符号类型
  4. 符号名

 

其中,'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

最新文章

  1. Oracel_子查询
  2. Android 图形总结
  3. Windows Live Writer编写Octopress
  4. JAVA 文本框、密码框、标签
  5. Hbase源码分析:Hbase UI中Requests Per Second的具体含义
  6. javascript深度克隆与javascript的继承实现
  7. Android(java)学习笔记146:Bundle和Intent类使用和交互
  8. python 基础干货 01
  9. js实现a标签超链接提交form表单的方法
  10. Oracle EBS-SQL (MRP-1):检查期间内计划完成的任务.sql
  11. onpagehide、onunload 和 onpageshow、onload事件疑惑
  12. 【原创】leetCodeOj --- Binary Search Tree Iterator 解题报告
  13. 增删查改-MySQL
  14. ionic for mac 新建与调试
  15. 第一部分 DotNET与C#概述
  16. url地址栏拼接参数写法
  17. j2EE经典面试题
  18. ubuntu16.04 安装java
  19. IO在Socket中的应用
  20. 最火移动端跨平台方案盘点:React Native、weex、Flutter

热门文章

  1. hadoop2.5.0 HA高可用配置
  2. 环形链表II 142 使用快慢指针(C++实现)
  3. 使用java多线程分批处理数据工具类
  4. THUSC 2018 游记
  5. 安装Sql Server 2008的时候报错说找不到某个安装文件
  6. Python初步
  7. vue循环绑定v-model
  8. React Antd中样式的修改
  9. Qt 蓝牙部分翻译
  10. Struts2(三.用户登录状态显示及Struts2标签)