Getting gdb to find definitions

Daniel Jacobowitz drow@false.org
Wed Jun 30 16:39:00 GMT 2004


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



More information about the Gdb mailing list