~laumann/hadb

format/dwarf: call freestrs() in test
format/dwarf: parse DW_FORM_implicit_const extra param
cmd/decodeabbrev: make a cli tool for parsing .debug_abbrev

There's a new script that uses objdump to dump the raw bytes from an
object file. It can be combined with cmd/decodeabbrev like so:

    $ scripts/dumpelfsec.h <binary> .debug_abbrev | ./decodeabbrev

The script will dump any section that exists, it's not specific to
.debug_abbrev, but it relies on the output of objdump -h (I don't know
if that is reasonable).
format/dwarf: fix some issues

 - decodeabbrev() should call freeabbrevs() not just free()
 - when parsing haschildren, do a check that the input is not exhausted
format/dwarf: simple formatting
format/dwarf: save a line in read{u,s}leb128()
format/dwarf: decode .debug_str
format/dwarf: add another test for decodeabbrev
format/dwarf: decode .debug_abbrev

This is going in a more sans-io manner where all the library can be
fed is bytes, and API functions return either a tuple containg the
result and how many bytes were read or an error indicating a
partialread (ie not enough bytes were available).
format/dwarf: move {u|s}leb128 types to types.ha
cmd/hare: fix fmt::printfln() usage
cmd/hare: rename {bp -> breakpoint}.ha

There's both cmd/hadb/bp.ha and cmd/hadb/+x86_64/bp.ha and it would
seem like the latter is treated as shadowing the former.
cmd/hadb: add missing default case
format/dwarf: fix for latest hare stdlib

The strio module was removed, replaced in parts by the memio module.
Add types for parsing .debug_{info,abbrev}

We should probably start by parsing .debug_abbrev as it holds all the
information on how to decode .debug_info entries.
cmd/hadb: add getopt

Not many options, but at least it doesn't crash horribly if you don't
give it an argument.
format/dwarf: cleanup + rename "statemachine" -> "registers"
cmd/hadb: add breakpoint definition, and x86_64 specific things

The idea here is that for each target architecture, we keep a definition
of its breakpoint instruction (bpinst) and a bitmask we can use to
inject bpinst.
trace: add {read,write}mem for ptrace
Next