Ticket #90 (closed enhancement: fixed)

Opened 5 years ago

Last modified 4 years ago

Include enough information to off-line map stack to line numbers when there had been no local debuginfo

Reported by: caolanm Owned by: dvlasenk@…
Priority: major Milestone:
Component: plugins Version:
Keywords: Cc:
Blocked By: Blocking:

Description

There's going to be cases where debuginfo is not available locally, especially for e.g. OpenOffice?.org where the debuginfo rpm is at least 500M. So I'd like enough information in the bt that can be used to off-line map the addresses back to line numbers. For that I need to know where prelinked shared libraries ended up.

simply adding "info sharedlib" to the gdb line should be enough I think. As attached here.

One way (maybe there's a better one) to use this with off-line debuginfo could be...

So given a bt from someone with a prelinked libXt with no local debuginfo installed

 (gdb) thread apply all backtrace full
 #4  0x07ec047c in XtAppMainLoop () from /usr/lib/libXt.so.6
 No symbol table info available.
 (gdb) info sharedlib
 From        To          Syms Read   Shared Object Library
 0x07eb1930  0x07eeeae8  Yes         /usr/lib/libXt.so.6

The developer can grab the matching debuginfo and reannotate this back to source lines with

 $readelf -l libXt.so.debug |grep Entry
 Entry point 0xb930

 #address-prelink_entry_point+unprelinked_entry_point
 $echo "ibase=16;obase=10;07EC047C-07EB1930+B930" | bc
 1A47C

 $addr2line -e libXt.so.debug -f 0x1A47C
 XtAppMainLoop
 /usr/src/debug/libXt-1.0.5/src/Event.c:1552

Attachments

abrt.enough-for-offline.patch (570 bytes) - added by caolanm 5 years ago.
add info sharedlib
gdb.sharedlibs.patch (803 bytes) - added by caolanm 4 years ago.
update trivial patch

Change History

Changed 5 years ago by caolanm

add info sharedlib

comment:1 Changed 4 years ago by jmoskovc

  • Owner changed from zprikryl@… to dvlasenk@…

comment:2 Changed 4 years ago by caolanm

I'm beginning to get OOo abrt reports, and as feared none of them have debuginfo installed on their machine (its huge for OOo) so I get nothing except a very basic trace, which is near useless. Can we just add

info sharedlib

to the gdb call, that's enough for me to make them usable.

Changed 4 years ago by caolanm

update trivial patch

comment:3 Changed 4 years ago by vda

  • Status changed from new to closed
  • Resolution set to fixed

Committed to git. Will be in 1.0.2.

Note: See TracTickets for help on using tickets.