C语言再学习-- readelf、objdump、nm使用详解
在其他文章里,这三个指令用了好多次了,但是没有真正总结他们的用法,现在来讲解一下。
参看: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使用详解相关推荐
- C语言再学习 -- 关键字const
const 关键字其实我们并不陌生,之前有讲过const修饰数组和指针.现在来详细介绍这个关键字. 参看:[C/C++和指针]著名的<const的思考> 一.const 介绍 1.cons ...
- C语言再学习 -- 段错误(核心已转储)
参看:Linux下的段错误产生的原因及调试方法 参看:Linux环境下段错误的产生原因及调试方法小结 参看:维基百科--Segmentation fault 参看:LINUX内核段错误调试详细指南精品 ...
- C语言再学习 -- 存储类型关键字
定义: 是对声明的实现或者实例化.连接器(linker)需要它(定义)来引用内存实体.与上面的声明相应的定义如下:参看:C语言再学习 -- 存储类.链接 C语言中有 5 个作为存储类说明符的关键字,分 ...
- C语言再学习--关键字
如需转载请注明出处:https://blog.csdn.net/qq_29350001/article/details/53021879 C语言一共有32个关键字,如下表所示: 关键字 说明 auto ...
- C语言再学习 -- 创建excel文件
参看:C语言操作Excel表格 上一篇文章讲了一下 cJSON,可以生成json文件了.这篇文章讲一下怎么生成excel表xsl格式文件. 注意点: 1.文件类型为 xls 或者 xlsx 2.使用f ...
- C语言再学习 -- 再论内存管理
之前有总结过内存管理,参看:C语言再学习 -- 内存管理 但现在看来,缺少示例.从新再写一篇文章,着重介绍常见内存错误.跨函数使用存储区.开始吧,再论内存管理!! 发生内存错误是件非常麻烦的事情.编译 ...
- C语言再学习 -- 详解C++/C 面试题 2
(经典)C语言测试:想成为嵌入式程序员应知道的0x10个基本问题. 参看:嵌入式程序员面试问题集锦 1.用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题) #define ...
- C语言再学习 -- 详解C++/C 面试题 1
参看:<高质量C++ C编程指南>.林锐 对这篇文章记忆犹新,因为之前找工作面试的时候,遇到过一家公司就是用的这套面试题.现在就结合考查的知识点和我总结完 C 语言再学习后的深入理解,来详 ...
- C语言再学习 -- 再论数组和指针
之前有总结指针数组,但是现在看来总结的太简单了.好多重要的知识点都是一带而过的.本想在后面添加后来想想算了,还是再写一篇文章来详细介绍数组和指针这对冤家吧. 之前总结的,参看:C语言再学习 -- 数组 ...
最新文章
- 设计模式之外观模式php,php设计模式(十五)外观模式
- web自动化之鼠标事件
- 一款基于RxJava2+Retrofit2实现简单易用的网络请求框架
- unreal world 皮革_UnRealWorld 进阶游戏教程
- Andoid开发中生成二维码
- python怎么画参数函数图像_详解pandas.DataFrame.plot() 画图函数
- 我们渴望和平freeeim
- java类加载器分类_Java 类加载器的种类
- oracle批量update 转
- 关于波峰波谷趋势分割(想象中的方法),判断趋势,突然来想到的,记下来,没有实验。以便以后用于分割...
- DELPHI基础教程 第二章 Delphi面向对象的编程方法
- SpringData JPA(一)——什么是SpringData JPA
- Python编程工具IDLE快捷键
- 联邦学习(Federated Learning)学习小记
- Gitbub认证及代码提交
- 收集的13个杀毒软件和安全防护软件(有图哦)
- PHP implode和explode用法
- 计算机无纸化考试知识点,2012重庆无纸化考试《会计电算化》知识点:计算机软件...
- Valgrind 的下载安装和使用 (centos7.6, 其他linux应该类同)
- linux更改oracle所属组,Linux更改oracle用户组实验