BFD (Binary File Descriptor)
A Ruby C extension (and gem) for the GNU Binutils libbfd library.
Note: this is not a complete implementation of the BFD API; it is only intended for use with the Opcodes or Opdis Ruby extensions.
BUILD
The standard C extension build process is used:
bash# ruby extconf.rb bash# make
Note that the Ruby headers must be installed. On Ubuntu, these are in the ruby-dev or ruby1.9-dev package.
The gem is built using the standard gem build command:
bash# gem build Bfd.gemspec
The top-level Makefile supports each of these builds with the commands ‘make’ and ‘make gem’.
bash# make # builds C extension bash# make gem # builds the gem
EXAMPLES
Extended examples are provided in the ‘examples’ directory. The following code snippets give a brief overview of using the BFD extension.
require ‘BFD’
t = Bfd::Target.new(‘/tmp/a.out’) t.symbols.values.each { |sym| puts sym }
Bfd::Target.new(‘/tmp/a.out’) do |tgt| tgt.sections.each { |name, sec| puts sec } end