GNU Binutils工具简介

Binutils (2.14): 
ftp://ftp.gnu.org/gnu/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   显示程序调用段的各种数据



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值