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