This is the mail archive of the
gdb@sourceware.org
mailing list for the GDB project.
Re: Questions on cross-gdb
- From: Pedro Alves <pedro at codesourcery dot com>
- To: gdb at sourceware dot org, danny dot backx at scarlet dot be
- Date: Mon, 24 Aug 2009 12:08:32 +0100
- Subject: Re: Questions on cross-gdb
- References: <1250656540.11282.38.camel@pavilion>
On Wednesday 19 August 2009 05:35:40, Danny Backx wrote:
> Question 2 : I occasionally have a problem - see below - setting
> breakpoints.
>
> (gdb) break 65
> warning: (Internal error: pc 0xd4720040 in read in psymtab, but not in
> symtab.)
This is a bug in GDB, see below. But, it may be some corner case
triggered by bad debug info. Note that 0xd4720040 is over 0x80000000, so
it's itself suspicious. I suggest checking if this PC itself is
bogus or not. If not bogus another possibility could be a sign
extending problem somewhere in GDB.
> A pointer to what might be causing this would be appreciated so I
> can chase the bug.
GDB builds partial symbol tables (psymtab) and full symbol
tables (symtab) out of the same debug info, in different phases. It starts
by doing a "light" scan of the debug info, and building the
lighter psymtabs with just enough information to be able to locate and
read in the more expensive full symbol tables, when required, on demand.
What you're seeing is that GDB found the symbol for line 65 in the partial
symbol table, and was then trying to expand the corresponding full symbol
table, but, due to some bug, the same symbol wasn't found in the full
symbol table. This should never happen by design. First questions would
be: which GDB version are you working with? --- try CVS HEAD; which debug
info format is this? STABS? DWARF? Prefer DWARF. You can select
a format at compile time with -gstabs+ or -gdwarf-2 .
--
Pedro Alves