This is the mail archive of the
gdb@sources.redhat.com
mailing list for the GDB project.
Internal error in GDB
- From: Steven Johnson <sjohnson at neurizon dot net>
- To: gdb at sources dot redhat dot com
- Date: Thu, 14 Nov 2002 17:34:05 +1000
- Subject: Internal error in GDB
- Organization: Neurizon Pty Ltd
Im getting the error:
Internal error: pc 0x0 in read in psymtab, but not in symtab.
from a very recent CVS build of GDB (As of 11th November).
It happens when I set breakpoints in an assembler file, that has been
assembled through GCC, using the C Preprocessor (.S file, not .s file).
It does nothing wrong, except pop up all the time and hence interfere
with debugging significantly. (Im using insight and have to keep
pressing OK to continue).
I searched the code and it seems to be coming from
symtab.c:find_pc_sect_symtab (last if in the function)
The comment in the code indicates that this error may want to stop GDB
cold. Thankfully it isn't, cause I seem to be getting it in error.
Also, the code here seems to be wrong, it prints the error, and then
proceeds to look it up anyway. As in:
if (ps->readin)
warning("Internal error: pc 0x%s in read in psymtab, but not in
symtab.",paddr_nz(pc));
s = PSYMTAB_TO_SYMTAB(s)
I would have expected, from the error, it not to try and
PSYMTAB_TO_SYMTAB, as it is saying it isn't in the SYMTAB. as in:
if (ps->readin)
warning("Internal error: pc 0x%s in read in psymtab, but not in
symtab.",paddr_nz(pc));
else
s = PSYMTAB_TO_SYMTAB(s)
Anyway, what is going on here? What do i need to do to my assembler
file to prevent this warning?
Regards,
Steven Johnson