Hey Konstantin, Could you expand on the circumstances which require this? The frame-based unwinder code just above checks for null RBP and the dwarf-based one should not require the check -- see around src/dwarf/Gparser.c comment "DWARF spec says undefined return address location means end of stack."
Regards, Lassi On Mon, Sep 17, 2012 at 4:39 PM, Konstantin Belousov <[email protected]> wrote: > From: Konstantin Belousov <[email protected]> > > --- > src/x86_64/Gstep.c | 6 ++++++ > 1 file changed, 6 insertions(+) > > diff --git a/src/x86_64/Gstep.c b/src/x86_64/Gstep.c > index e05fcae..9d8c2cf 100644 > --- a/src/x86_64/Gstep.c > +++ b/src/x86_64/Gstep.c > @@ -196,6 +196,12 @@ unw_step (unw_cursor_t *cursor) > c->dwarf.loc[RIP] = rip_loc; > } > > + if (DWARF_IS_NULL_LOC (c->dwarf.loc[RBP])) > + { > + ret = 0; > + Debug (2, "NULL %rbp loc, returning %d\n", ret); > + return ret; > + } > c->dwarf.ret_addr_column = RIP; > > if (!DWARF_IS_NULL_LOC (c->dwarf.loc[RIP])) > -- > 1.7.11.5 > > > _______________________________________________ > Libunwind-devel mailing list > [email protected] > https://lists.nongnu.org/mailman/listinfo/libunwind-devel _______________________________________________ Libunwind-devel mailing list [email protected] https://lists.nongnu.org/mailman/listinfo/libunwind-devel
