Skip to content

Commit

Permalink
Add simple build and use instructions
Browse files Browse the repository at this point in the history
  • Loading branch information
Austin Clements committed Oct 11, 2013
1 parent 5fb30be commit 3b838e7
Showing 1 changed file with 25 additions and 7 deletions.
32 changes: 25 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,13 @@
C++11 ELF/DWARF parser
----------------------

Libelfin is a from-scratch C++11 library for reading ELF binaries and
DWARFv4 debug information.

### Features
Quick start
-----------

`make`, and optionally `make install`. You'll need GCC 4.7 or later.

Features
--------

* Native C++11 code and interface, designed from scratch to interact
well with C++11 features, from range-based for loops to move
Expand All @@ -29,16 +32,31 @@ DWARFv4 debug information.

* Large collection of type-safe DIE attribute fetchers.

### Non-features
Non-features
------------

Libelfin implements a *syntactic* layer for DWARF and ELF, but not a
*semantic* layer. Interpreting the information stored in DWARF DIE
trees still requires a great deal of understanding of DWARF, but
libelfin will make sense of the bytes for you.

### Status
Using libelfin
--------------

To build against `libdwarf++`, use, for example

g++ -std=c++11 a.cc $(pkg-config --cflags --libs libdwarf++)

To use a local build of libelfin, set `PKG_CONFIG_PATH`. For example,

export PKG_CONFIG_PATH=$PWD/elf:$PWD/dwarf

There are various example programs in `examples/`.

Status
------

Libelfin is a good start. It's not production-ready and there are
many parts of the DWARF specification is does not yet implement, but
many parts of the DWARF specification it does not yet implement, but
it's complete enough to be useful for many things and is a good deal
more pleasant to use than every other debug info library I've tried.

0 comments on commit 3b838e7

Please sign in to comment.