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