On Thu, 2015-11-26 at 00:05 +0100, Ben Gamari wrote: > Previously this was incorrectly assumed to be an ULEB128. Hilarity > ensued. > > This appears to be the case in both DWARF 3, DWARF 4, and LSB 5. > > Also show set_loc argument as hexadecimal > > Finally, add a test for this behavior. This was derived from the > following testsuite extract from output from the Glasgow Haskell > Compiler, > [...] > Update styule > [...] > diff --git a/libdwfl/frame_unwind.c b/libdwfl/frame_unwind.c > index 39509b7..365da48 100644 > --- a/libdwfl/frame_unwind.c > +++ b/libdwfl/frame_unwind.c > @@ -559,8 +559,24 @@ handle_cfi (Dwfl_Frame *state, Dwarf_Addr pc, Dwarf_CFI > *cfi, Dwarf_Addr bias) > bool ra_set = false; > ebl_dwarf_to_regno (ebl, &ra); > > + fprintf(stderr, "\n"); > + fprintf(stderr, "Unwinding from %lx:\n", pc); > + char *modname = "null"; > + if (cfi->dbg) modname = elf_getident(cfi->dbg->elf, NULL); > + fprintf(stderr, " mod = %s\n", modname ? modname : "null"); > + fprintf(stderr, " CIE offset = %lx\n", frame->fde->cie->offset); > + if (frame->fde->cie->signal_frame) > + fprintf(stderr, " signal frame\n"); > +
Looks like this patch wasn't fully finished/cleaned up yet. Cheers, Mark