On 04/11/17 02:56 PM, Doug Moore wrote: > If I modify tests/Gtest-bt.c with this patch: > > diff --git a/tests/Gtest-bt.c b/tests/Gtest-bt.c > index 802dd08..82d8317 100644 > --- a/tests/Gtest-bt.c > +++ b/tests/Gtest-bt.c > @@ -86,9 +86,10 @@ do_backtrace (void) > > if (unw_get_proc_info (&cursor, &pi) == 0) > { > - printf ("\tproc=0x%lx-0x%lx\n\thandler=0x%lx lsda=0x%lx > gp=0x%lx", > + printf ("\tproc=0x%lx-0x%lx\n\thandler=0x%lx lsda=0x%lx > gp=0x%lx uw=0x%lx", > (long) pi.start_ip, (long) pi.end_ip, > - (long) pi.handler, (long) pi.lsda, (long) pi.gp); > + (long) pi.handler, (long) pi.lsda, (long) pi.gp, > + (long) pi.unwind_info); > } > > #if UNW_TARGET_IA64 > > and then I run > > ./Gtest-bt foo | grep uw > > with ‘foo’ for verbose output, and looking for the unwind info added by the > patch, I see that in every case, the unwind info is 0x0.
Ah, thanks for the example. So it looks like this happens because put_unwind_info is called at the end of dwarf_make_proc_info, to free the memory. I don't think this has changed recently - we would need an API to release the proc info somehow, that I don't think currently exists? _______________________________________________ Libunwind-devel mailing list Libunwind-devel@nongnu.org https://lists.nongnu.org/mailman/listinfo/libunwind-devel