LIB BFD, the Binary File Descriptor Library

  1. BFD:https://ftp.gnu.org/old-gnu/Manuals/bfd-2.9.1/html_mono/bfd.html
  2. DEMOs:https://github.com/Rtoax/test/tree/master/c/glibc/bfd
  3. 断点示例:https://github.com/Rtoax/test/tree/master/gdb/breakpoint

 

First Edition--BFD version < 3.0

April 1991

{Steve Chamberlain}

{Cygnus Support}

 

 


 

Table of Contents

介绍

BFD是一个软件包,允许应用程序使用相同的例程对目标文件进行操作,无论目标文件格式如何。只需创建新的BFD后端并将其添加到库中,即可支持新的目标文件格式。

BFD分为两部分:前端和后端(每种目标文件格式一个)。

  • BFD的前端为用户提供接口。它管理内存和各种规范的数据结构。前端还决定使用哪个后端以及何时调用后端例程。
  • 后端为BFD提供了对现实世界的看法。每个后端提供一组呼叫,BFD前端可以使用这些呼叫来维护其规范形式。后端也可以保留信息以供自己使用,以提高效率。

历史

BFD背后的一个推动力是英特尔俄勒冈州GNU 960团队希望在COFF和b.out文件格式上实现应用程序的互操作性。Cygnus为团队提供了GNU支持,并与之签约以提供所需的功能。

这个名字来自大卫·华莱士(David Wallace)与理查德·斯托曼(Richard Stallman)关于图书馆的对话:RMS表示这将非常困难-大卫说“ BFD”。斯托曼是正确的,但名字卡住了。

同时,Ready Systems希望获得几乎相同的东西,但是针对不同的目标文件格式:IEEE-695,Oasys,Srecords,a.out和68k coff。

BFD首先由Cygnus支持成员实施;史蒂夫·张伯伦(sac@cygnus.com),约翰·吉尔摩(gnu@cygnus.com),肯尼·理查德·皮克斯利(K.理查德·皮克斯利rich@cygnus.com)和大卫·汉高·华莱士(David Henkel-Wallace gumby@cygnus.com)。

如何使用BFD

要使用该库,请包含“ bfd.h”并与“ libbfd.a”链接。

BFD为调用应用程序提供了对象文件各部分的通用接口。

当应用程序成功打开目标文件(对象,归档文件或其他文件)时,将返回指向内部结构的指针。该指针指向一个名为的结构bfd,在bfd.h中进行了描述 。我们的惯例是将此指针称为BFD,并将其实例称为code abfd。目标对象文件上的所有操作均作为方法应用于BFD。映射是bfd.h在一组宏中定义的,所有宏均以`bfd_' 减少名称空间污染。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值