On Mon, 2006-09-11 at 12:19 -0700, Arun Sharma wrote:
> Kyle Galloway wrote:
> > Arun Sharma wrote:
> >> Kyle Galloway wrote:
> >>
> >>> As I mentioned, I didn't get any debug output, did I do something 
> >>> wrong trying to set that up?
> >>
> >> You need to set UNW_DEBUG_LEVEL when running your test program. For eg:
> >>
> >> UNW_DEBUG_LEVEL=16 ./unwinddebug
> >>
> >>     -Arun
> >>
> > Thanks alot, here is the run on x86_64 with debug info
> > 
> > Enter the PID of the main therad: 20505
> > Assuming second thread is pid 20506
> >  >_Ux86_64_init_remote: (cursor=0x7ffff0392690)
> >                >_UPT_access_reg: RIP -> 324ebcd176
> >                >_UPT_access_reg: RSP -> 7fffa5ffcd90
> >  >_Ux86_64_step: (cursor=0x7ffff0392690, ip=0x000000324ebcd176)
> >            >_UPT_get_dyn_info_list_addr: looking for dyn_info list
> >               >_Ux86_64_dwarf_step: returning -10
> 
> It looks like dwarf based unwinding is failing on x86-64 for you and
> you're falling back to frame pointer based unwinding, which would be
> bogus even for the main thread (if you didn't compile with
> -fno-omit-frame-pointer) on x86-64.
> 
> On x86, the frame pointer is normally present and things are working ok
> for you.
> 
> You probably want to debug why _UPT_get_dyn_info_list_addr() is failing
> for you. I've never tested this aspect of libunwind on x86-64.
> 
>       -Arun

Almost every modern Linux distribution on x86 now builds their binaries
without frame pointers, unfortunately. 

The root of Kyle's problem lies in the call from
_UPT_get_dyn_info_list_addr () to get_list_addr () in the same file:

#if UNW_TARGET_IA64 && defined(__linux)

static inline int
get_list_addr (unw_addr_space_t as, unw_word_t *dil_addr, void *arg,
               int *countp)
{

.
.       /* implemented */
.

}

#else

static inline int
get_list_addr (unw_addr_space_t as, unw_word_t *dil_addr, void *arg,
               int *countp)
{

# warning Implement get_list_addr(), please.
  *countp = 0;
  return 0;
}

#endif

The function simply isn't written for anything which isn't ia64.

Are there any plans to complete this in the near future?

- Mike




_______________________________________________
Libunwind-devel mailing list
[email protected]
http://lists.nongnu.org/mailman/listinfo/libunwind-devel

Reply via email to