Internal error in GDB
Steven Johnson
sjohnson@neurizon.net
Wed Nov 13 23:40:00 GMT 2002
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
More information about the Gdb
mailing list