Linux 下nm 、objdump 和 readelf 比较
ELF (Executable and Linkable Format) 是 Linux 和 Unix-like 系统上可执行文件、库文件、共享文件等的标准格式。它具有以下几个特征:
多平台支持:ELF 可以在多种平台上运行,包括 x86、x86_64、SPARC、PowerPC、ARM 等。
链接支持:ELF 可以将多个目标文件链接到一起,以生成单一的可执行文件。
可重定位:ELF 文件可以在加载时重定位,以适应不同的地址空间要求。
可加载的段:ELF 文件可以包含多个可加载的段,以实现不同的加载方式。
大小可变:ELF 文件的大小可以通过段的大小和位置进行调整。
标准化:ELF 文件的格式已被 ISO 和 POSIX 组织标准化。
通过使用工具如 readelf
和 objdump
,可以分析和查看 ELF 文件的各个部分,以了解其结构和内容。
nm
和 readelf
是 Linux 下的两个可执行文件分析工具。
nm
用于显示可执行文件或目标文件中符号表的内容,例如函数名、变量名和它们对应的地址。
readelf
则是一个功能更强大的可执行文件分析工具,可以查看可执行文件的所有元数据,例如符号表、段表、头表等,以及每个元数据的详细信息。
总的来说,如果只需要查看符号表信息,则可以使用 nm
;如果需要对可执行文件进行详细的分析,则可以使用 readelf
。
Linux 下nm 、objdump 和 readelf 比较相关推荐
- Linux下nm和ldd 命令
1. Linux nm 命令 nm ['-a'|'--debug-syms'] ['-g'|'--extern-only'] ['-B'] ['-C'|'--demangle'[=style]] [' ...
- linux 下nm命令输出,Linux nm命令介绍
nm用来列出目标文件的符号清单.下面是nm命令的格式: nm [-a | --debug-syms] [-g | --extern-only] [-B][-C | --demangle] [-D | ...
- linux 下nm命令输出,使用awk解析nm命令的输出 - Linux Bash
这听起来这样从您的评论可能是你真正寻找: $ cat tst.awk { size = strtonum("0x"$1) sub(/^([^[:space:]]+[[:space: ...
- linux进程 exe可执行文件空,linux可执行文件的内容分析工具nm objdump readelf ar ldd
转自:http://blog.csdn.net/eroswang/article/details/1967243 UNIX(R) 系统中运行的程序遵守一种称为目标文件格式的精心设计.了解更多关于目标文 ...
- 段错误需要使用的工具 nm objdump readelf
nm:列出目标文件中的符号. objdump:显示目标文件中的详细信息. readelf:显示关于 ELF 目标文件的信息. 具体的readelf命令可以查看 列表中的第一个工具是 nm,它可以列出目 ...
- Linux ——objdump和readelf的使用
在一个程序编译结束后,会生成****.o的文件,但往往当我们用vim命令查看这个文件内容时,就全是乱码, 像这样: 那么我们应该如何查看***.o文件呢? objdump和readelf的使用 obj ...
- 模仿实现Linux下readelf工具部分功能
模仿实现Linux下 readelfreadelfreadelf 工具部分功能 完整实现: https://github.com/JiaZhengJingXianSheng/ReadELF ELF 目 ...
- Linux下的静态库、动态库和动态加载库
from: http://www.techug.com/linux-static-lib-dynamic-lib 库的存在极大的提高了C/C++程序的复用性,但是库对于初学者来说有些难以驾驭,本文从L ...
- Linux下的ELF文件、链接、加载与库(含大量图文解析及例程)
Linux下的ELF文件.链接.加载与库 链接是将将各种代码和数据片段收集并组合为一个单一文件的过程,这个文件可以被加载到内存并执行.链接可以执行与编译时,也就是在源代码被翻译成机器代码时:也可以执行 ...
最新文章
- java学习笔记(七)----异常
- 2020-11-10(进程的优先级)
- java 句柄 内存_Java内存区域学习
- 如何使用 sklearn 优雅地进行数据挖掘?
- 数字n,按字典排序,找出第k小的数字
- docker安装tesseract
- eclipse maven scm
- Learn OpenGL(七)——OpenGL中使用着色器的基本步骤及GLSL渲染简单示例
- jQuery数组处理汇总
- matlab朴素贝叶斯手写数字识别_「深度学习系列」PaddlePaddle之手写数字识别
- Cesium gltf(1.70)三维人物动画制作
- python100天从新手到大师下载_GitHub - longers/Python-100-Days: Python - 100天从新手到大师...
- C语言练习-day25
- 《读九章算术学Python》如何用Python编程实现盈不足术?附图解分析、代码实现和习题解答
- Windows 10 合并磁盘分区 (G and H)
- android+播放器+遥控,遥控大师安卓客户端
- 为什么说边缘计算是5G时代的必备品?
- 记录一下大三暑假来广州的实习生活
- 多媒体个人计算机软件系统由,多媒体计算机软件系统由什么组成
- android webview 找不到网页,[疑难杂症] Android WebView 无法打开天猫页面
热门文章
- mac latex与texstudio安装
- 超详细Seaborn绘图 ——(一)barplot
- [译] 流量控制(TC)五十年:从基于缓冲队列(Queue)到基于时间戳(EDT)的演进...
- 复杂计算器代码,C++
- matlab复杂噪声产生实验报告,基于小波信号的噪声消除matlab实验报告.docx
- 前端jquery实现图片点击放大缩小
- 广度搜索与深度搜索的区别
- 目标检测入门知识以思考(写于2021.11)
- HEVC(h265)学习
- C 时间库 time.h 获取当前时间