kcbanner
412cd789bf
debug: fixup base address calculations for macho
...
dwarf: fixup x86 register mapping logic
dwarf: change the register context update to update in-place instead of copying
debug: always print the unwind error type
2023-07-20 22:58:14 -04:00
kcbanner
f04f9705cc
dwarf: add support for DWARF5 DW_AT_ranges in subprograms, add DebugRangeIterator
...
Some DWARF5 subprograms have non-contiguous instruction ranges. An example of such
a function is `puts` in Ubuntu's libc. This change fixes name lookups for functions that use
DW_AT_range in their DIE.
2023-07-20 22:58:14 -04:00
kcbanner
5ebca4392e
debug: fixing more compile errors on arches that I hadn't tested on yet
2023-07-20 22:58:13 -04:00
kcbanner
c98e03fc7e
- rework CFI instruction parsing to not use std.meta
...
- move register formatting code to zig-dwardump
2023-07-20 22:58:13 -04:00
kcbanner
e72e762d1e
dwarf: implement more register mappings, fix up macos compile
2023-07-20 22:58:13 -04:00
kcbanner
9145ff7da0
dwarf: implement more register number mappings
...
- add dwarf.abi.RegisterContext to handle register numbers changing based on DWARF format
2023-07-20 22:58:13 -04:00
kcbanner
b449d98a93
- rework StackIterator to optionally use debug_info to unwind the stack
...
- add abi routines for getting register values
- unwding is working!
2023-07-20 22:58:13 -04:00
kcbanner
f3f3c877e0
- add DWARF expression parser
...
- change read apis to use a stream
- add register formatters
2023-07-20 22:58:13 -04:00
kcbanner
8b8d627137
- add call frame instruction parser
...
- add register printing
2023-07-20 22:58:13 -04:00