GNU Binutils工具简介
2014-11-04 12:22
281 查看
ftp://ftp.gnu.org/gnu/binutils/
Binutils的内容
Binutils 是一组开发工具,包括连接器,汇编器和其他用于目标文件和档案的工具。
安装下列程序: addr2line, ar, as, c++filt, gprof, ld, nm, objcopy, objdump, ranlib, readelf, size, strings 和 strip安装下列库文件: libiberty.a, libbfd.[a,so] 和 libopcodes.[a,so]
· as GNU的汇编器
作为 GNU Binutils工具集中最重要的工具之一。as工具主要用来将汇编语言编写的源程
序转换成二进制形式的目标代码。Linux平台的标准汇编器是GAS,它是 GNU GCC编译器
所依赖的后台汇编工具,通常包含在 Binutils软件包中。
· ld GNU的链接器
同as一样,ld也是GNU Binutils工具集中重要的工具,Linux 使用 ld作为标准的链接程
序,由汇编器产生的目标代码是不能直接在计算机上运行的,它必须经过链接器的处理才能
生成可执行代码,链接是创建一个可执行程序的最后一个步骤,ld可以将多个目标文件链接
成为可执行程序,同时指定了程序在运行时是如何执行的。
· add2line 将地址转换成文件名或行号对,以便调试程序
· ar 从文件中创建、修改、扩展文件
· gasp 汇编宏处理器
· nm 从目标代码文件中列举所有变量(包括变量值和变量类型),如果没有指定目标
文件,则默认是a.out文件
· objcopy objcopy工具使用GNU BSD 库,它可以把目标文件的内容从一种文件格式
复制到另一种格式的目标文件中
在默认的情况下, GNU编译器生成的目标文件格式为elf格式, elf文件由若干段 (section)
组成,如果不作特殊指明,由 C 源程序生成的目标代码中包含如下段:.text(正文段)包含
程序的指令代码;.data(数据段)包含固定的数据,如常量、字符串;.bss(未初始化数据段)
包含未初始化的变量、 数组等。 C++源程序生成的目标代码中还包括.fini (析构函数代码)和.init
(构造函数代码)等。链接生成的elf格式文件还不能直接下载到目标平台来运行执行,需要
通过 objcopy 工具生成最终的二进制文件。连接器的任务就是将多个目标文件的.text、.data
和.bss等段连接在一起,而连接脚本文件是告诉连接器从什么地址开始放置这些段。
· add2line 把程序地址转换为文件名和行号
在命令行中带一个地址和一个可执行文件名,它就会使用这个可执行文件的调试信息指
出在给出的地址上是哪个文件以及行号。
· objdump 显示目标文件信息
objdump工具可以反编译二进制文件,也可以对对象文件进行反汇编,并查看机器代码。
· readelf 显示elf文件信息
readelf命令可以显示符号、段信息、二进制文件格式的信息等,这在分析编译器如何从
源代码创建二进制文件时非常有用。
· ranlib 生成索引以加快对归档文件的访问,并将其保存到这个归档文件中
在索引中列出了归档文件各成员所定义的可重分配目标文件。
· size 列出目标模块或文件的代码尺寸
size 命令可以列出目标文件每一段的大小以及总体的大小。默认情况下,对于每个目标
文件或者一个归档文件中的每个模块只产生一行输出。
· strings 打印可打印的目标代码字符(至少 4 个字符) ,打印字符多少可以控制
对于其他格式的文件,打印字符串。打印某个文件的可打印字符串,这些字符串最少 4
个字符长,也可以使用选项“-n”设置字符串的最小长度。默认情况下,它只打印目标文件
初始化和可加载段中的可打印字符;对于其他类型的文件它打印整个文件的可打印字符,这
个程序对于了解非文本文件的内容很有帮助。
· strip 放弃所有符号连接
删除目标文件中的全部或者特定符号。
· c++filt 链接器ld使用该命令可以过滤 C++符号和 Java 符号,防止重载函数冲突
· gprof 显示程序调用段的各种数据
相关文章推荐
- ANTLR(语言识别的另一工具)的简介之四[翻译]
- AWStats: 跨平台的日志分析工具使用简介
- ARP协议学习小结——协议简介和图形化工具SendARP
- Java2实用教程(第二版)程序代码——第七章 AWT 工具集简介
- 常用工具简介
- 软件质量保证工具 lint使用简介
- 基于 Windows Mobile 的 Pocket PC 和 Smartphone 的开发工具简介
- PALM开发教程-第十一章 工具和方法简介
- SUN常用的诊断命令和工具(简介) [zt]
- 域安全通道实用工具nltest.exe的使用简介(上)
- [ 工具简介 JCom ] 方便用Java访问COM的软件
- 网络管理工具Scotty简介。
- PowerDesigner工具简介
- PowerDesigner工具简介
- 域安全通道实用工具nltest.exe的使用简介(下)
- ANTLR(语言识别的另一工具)的简介之二[翻译]
- 我的4个常用工具简介
- Palm OS开发工具简介【转载】
- ASP.NET Web Matrix开发工具简介
- 基于 Windows Mobile 的 Pocket PC 和 Smartphone 的开发工具简介