在其他文章里,这三个指令用了好多次了,但是没有真正总结他们的用法,现在来讲解一下。


参看:readelf命令

参看:objdump命令

参看:nm命令

常用选项:

(1)使用 readelf 显示一个或者多个elf格式的目标文件的信息

readelf -h add.o  (-h 显示elf文件开始的文件头信息)

# readelf -h add.o
ELF Header:Magic:   7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00 Class:                             ELF32Data:                              2's complement, little endianVersion:                           1 (current)OS/ABI:                            UNIX - System VABI Version:                       0Type:                              REL (Relocatable file)Machine:                           Intel 80386Version:                           0x1Entry point address:               0x0Start of program headers:          0 (bytes into file)Start of section headers:          252 (bytes into file)Flags:                             0x0Size of this header:               52 (bytes)Size of program headers:           0 (bytes)Number of program headers:         0Size of section headers:           40 (bytes)Number of section headers:         11Section header string table index: 8

(2)使用 objdump 查看目标文件或者可执行的目标文件

objdump -d add.o  (-d 从objfile中反汇编那些特定指令机器码的section。 )

# objdump -d add.o add.o:     file format elf32-i386Disassembly of section .text:00000000 <add_int>:0: 55                      push   %ebp1:   89 e5                   mov    %esp,%ebp3:  8b 45 0c                mov    0xc(%ebp),%eax6: 8b 55 08                mov    0x8(%ebp),%edx9: 01 d0                   add    %edx,%eaxb:  5d                      pop    %ebpc:   c3                      ret 

(3)使用 nm 显示二进制目标文件的符号表,包括符号地址、符号类型、符号名等

nm add.o

# nm add.o
00000000 T add_int

C语言再学习-- readelf、objdump、nm使用详解相关推荐

  1. C语言再学习 -- 关键字const

    const 关键字其实我们并不陌生,之前有讲过const修饰数组和指针.现在来详细介绍这个关键字. 参看:[C/C++和指针]著名的<const的思考> 一.const 介绍 1.cons ...

  2. C语言再学习 -- 段错误(核心已转储)

    参看:Linux下的段错误产生的原因及调试方法 参看:Linux环境下段错误的产生原因及调试方法小结 参看:维基百科--Segmentation fault 参看:LINUX内核段错误调试详细指南精品 ...

  3. C语言再学习 -- 存储类型关键字

    定义: 是对声明的实现或者实例化.连接器(linker)需要它(定义)来引用内存实体.与上面的声明相应的定义如下:参看:C语言再学习 -- 存储类.链接 C语言中有 5 个作为存储类说明符的关键字,分 ...

  4. C语言再学习--关键字

    如需转载请注明出处:https://blog.csdn.net/qq_29350001/article/details/53021879 C语言一共有32个关键字,如下表所示: 关键字 说明 auto ...

  5. C语言再学习 -- 创建excel文件

    参看:C语言操作Excel表格 上一篇文章讲了一下 cJSON,可以生成json文件了.这篇文章讲一下怎么生成excel表xsl格式文件. 注意点: 1.文件类型为 xls 或者 xlsx 2.使用f ...

  6. C语言再学习 -- 再论内存管理

    之前有总结过内存管理,参看:C语言再学习 -- 内存管理 但现在看来,缺少示例.从新再写一篇文章,着重介绍常见内存错误.跨函数使用存储区.开始吧,再论内存管理!! 发生内存错误是件非常麻烦的事情.编译 ...

  7. C语言再学习 -- 详解C++/C 面试题 2

    (经典)C语言测试:想成为嵌入式程序员应知道的0x10个基本问题. 参看:嵌入式程序员面试问题集锦 1.用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题) #define ...

  8. C语言再学习 -- 详解C++/C 面试题 1

    参看:<高质量C++ C编程指南>.林锐 对这篇文章记忆犹新,因为之前找工作面试的时候,遇到过一家公司就是用的这套面试题.现在就结合考查的知识点和我总结完 C 语言再学习后的深入理解,来详 ...

  9. C语言再学习 -- 再论数组和指针

    之前有总结指针数组,但是现在看来总结的太简单了.好多重要的知识点都是一带而过的.本想在后面添加后来想想算了,还是再写一篇文章来详细介绍数组和指针这对冤家吧. 之前总结的,参看:C语言再学习 -- 数组 ...

最新文章

  1. 设计模式之外观模式php,php设计模式(十五)外观模式
  2. web自动化之鼠标事件
  3. 一款基于RxJava2+Retrofit2实现简单易用的网络请求框架
  4. unreal world 皮革_UnRealWorld 进阶游戏教程
  5. Andoid开发中生成二维码
  6. python怎么画参数函数图像_详解pandas.DataFrame.plot() 画图函数
  7. 我们渴望和平freeeim
  8. java类加载器分类_Java 类加载器的种类
  9. oracle批量update 转
  10. 关于波峰波谷趋势分割(想象中的方法),判断趋势,突然来想到的,记下来,没有实验。以便以后用于分割...
  11. DELPHI基础教程 第二章 Delphi面向对象的编程方法
  12. SpringData JPA(一)——什么是SpringData JPA
  13. Python编程工具IDLE快捷键
  14. 联邦学习(Federated Learning)学习小记
  15. Gitbub认证及代码提交
  16. 收集的13个杀毒软件和安全防护软件(有图哦)
  17. PHP implode和explode用法
  18. 计算机无纸化考试知识点,2012重庆无纸化考试《会计电算化》知识点:计算机软件...
  19. Valgrind 的下载安装和使用 (centos7.6, 其他linux应该类同)
  20. linux更改oracle所属组,Linux更改oracle用户组实验

热门文章

  1. 第四周作业wcPro
  2. 洛谷 P1273 【有线电视网】
  3. Eclipse显示内存占用
  4. 【linux】虚拟机安装centos后ping ip地址出现错误:Network is unreachable
  5. Oracle 查询字段在什么表
  6. Python学习笔记:常用内建模块5
  7. 时频分析:短时傅里叶实现(3)
  8. 关键字explicit与构造函数
  9. tensorboard出现OSError: [Errno 22] Invalid argument问题解决
  10. [云炬创业学笔记]第一章创业是什么测试2