gimli works well enough for actually parsing the DWARF format, but it abstracts over somewhat less than what you would hope (in particular, you get to do all the fun stuff of figuring out where debugging information is yourself--which gets tedious when you want to support things like split-dwarf or debug index).