This is the mail archive of the
gdb@sources.redhat.com
mailing list for the GDB project.
Re: Getting gdb to find definitions
- From: Daniel Jacobowitz <drow at false dot org>
- To: Paul Koning <pkoning at equallogic dot com>
- Cc: gdb at sources dot redhat dot com
- Date: Wed, 30 Jun 2004 12:33:32 -0400
- Subject: Re: Getting gdb to find definitions
- References: <16609.36282.383014.108683@gargle.gargle.HOWL>
On Tue, Jun 29, 2004 at 11:41:46AM -0400, Paul Koning wrote:
> There's a problem I'm seeing increasingly often with GDB 6.1 --
> especially now that our compilers are switching to Dwarf-2 format. It
> seems that gdb doesn't load definitions of types until you reference
> some variable that causes it to load the symbols for a particular
> source file -- or something like that.
>
> For example, I might do this:
>
> (gdb) file netbsd.gdb
> Reading symbols from netbsd.gdb...done.
> (gdb) ptype struct user
> No struct type named user.
> (gdb) p curproc
> $1 = (struct proc *) 0x8282e9e0
> (gdb) ptype struct user
> type = struct user {
> struct pcb u_pcb;
> struct pstats u_stats;
> }
>
> This is causing a lot of confusion among users, and it breaks various
> scripts.
>
> I would argue that gdb should read the definitions of types when they
> are mentioned (as it does with the definitions of variables). Either
> that, or it shouldn't default to delayed loading, if it causes
> malfunctions like this.
GDB is supposed to do this. If you've found a case where it doesn't
work, please do provide a testcase.
> Is there a fix for this? Alternatively, is there a way to at least
> change the default symbol loading rule?
-readnow.
--
Daniel Jacobowitz