RE: debugging core files from other machines with archived symbol files

Staffan Gustafsson
2003-08-19T21:36:35Z

Problem is mostly in the automation area. On windows, we have a
simple script that starts the debugger on the core file, maps in
the correct symbols and images from a symbol server, the correct
version of the source and takes me to the line causing
the crash.

When debugging a lot of dumps, that's a big saver. The story
using redhat/gdb seems much weeker.

So while I could create a directory structure similar to what some
client has chosen for his/her machine, copy my files to that
location, it is a harder to automate, since I have to start gdb on
the core file just to find out what that directory structure is.

But I guess it can be done. This is however an area where Microsoft
has a more streamlined solution, and it wouldn't hurt to have the
possibility to look up symbols/images from a server in gdb.

Just my $.02

/Staffan

> -----Original Message-----
> From: Paul Koning [mailto:pkoning@equallogic.com]
> Sent: den 19 augusti 2003 15:32
> To: loa_gus@hotmail.com
> Cc: drow@mvista.com; gdb@sources.redhat.com
> Subject: Re: debugging core files from other machines with
> archived symbol files
>
>
> >>>>> "Erik" == Erik Gustafsson <loa_gus@hotmail.com> writes:
>
> Erik> Hmm.. Isn't this something you want to be able to do?
> Seems to Erik> me that everybody that is shipping software
> to customers would Erik> like to be able to debug crash
> dumps from customer sites in a Erik> simple way.
>
> Erik> I'm not sure I understand on what level the problem
> is. Is this Erik> a missing feature in GDB or missing
> information in the core Erik> file?
>
> I don't think there is a real issue in practice. Daniel
> briefly stated the requirements -- you need to have a file
> system subtree somewhere that has the same shape as the
> target system tree. That in general isn't a big deal.
>
> Given that, you simply point gdb to that subtree with
> solib-absolute-prefix, and you're good to go.
>
> For example, suppose your build procedure produces full
> (unstripped) binaries in .../targetroot/usr/lib,
> .../targetroot/usr/bin, etc. Then this gets the job done:
> gdb .../targetroot/usr/bin/brokenapp
> (gdb) set solib-absolute-prefix .../targetroot
> (gdb) core customercorefile
>
> GDB will find the relevant file names and the load addresses
> from data stored in the corefile. Well, that depends on the
> OS; some don't do a particularly good job. For example, you
> may discover, as I did, that you can find text sections of
> libs but not data sections.
>
> paul
>
>
>
>
>