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. Doug > On Apr 11, 2017, at 9:32 AM, Dave Watson <davejwat...@fb.com> wrote: > > On 04/11/17 12:16 AM, Doug Moore wrote: >> >> For x86_64, specifically, and for dwarf generally, unw_get_proc_info does >> not set the unwind_info field of the unw_proc_info_t to any non-NULL value, >> ever. That is because dwarf_make_proc_info passes 0 as the last argument to >> fetch_proc_info, so that dwarf_extract_proc_info_from_fde ends up not >> copying unwind info. >> >> How can one get the actual unwind info out of unw_get_proc_info? > > On current master, tdep_find_proc_info is always passed 1, regardless > of whatever need_unwind_info is passed: > > http://git.savannah.gnu.org/gitweb/?p=libunwind.git;a=blob;f=src/dwarf/Gparser.c;h=ede856e053e5d1716058d2e56165e9feb4a670e6;hb=HEAD#l441 > > Can you provide a unittest for the issue? It looks like > unw_get_proc_info is called from both test-ptrace and test-coredump > already, and at least appears to pass on my machine (excepting the > -m32 issue just reported). > > !DSPAM:10223,58ece8fa39345642720838! > > _______________________________________________ Libunwind-devel mailing list Libunwind-devel@nongnu.org https://lists.nongnu.org/mailman/listinfo/libunwind-devel