This is the mail archive of the gdb@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: warning: (Internal error: pc 0xd00 in read in psymtab, but not in symtab.)


On 11/15/05, Daniel Jacobowitz <drow@false.org> wrote:
> > When we drop a linkonce section, we also drop all relocs referring to
> > symbols defined in that section, or the section's STT_SECTION symbol.
> > (Or do we just make the relocs use STN_UNDEF as their symbol?)  If the
>
> Neither, quite.  We specifically fail to resolve them because they are
> in .debug_info; otherwise this would be a fatal error.

Do we need some sort of annotation in the debug information itself,
indicating that it's referring to stuff that might go away?

Suppose we had a new reloc type, generic name
BFD_RELOC_SECTION_INCLUDED, whose symbol must be an STT_SECTION
symbol.  The reloc refers to a single byte which the linker should set
to one if the symbol's section is present in the resulting object, or
zero if it has been dropped.

Then the appropriate dies could have a DW_AT_GNU_section_included
attribute, DW_FORM_flag, whose operand had that reloc applied to it.

The compiler's chopping the program up into these sections; make it
responsible for telling us what debug info corresponds to what code.

Ideally, the debug info itself would just get edited, but I'm not sure
how we would go about that.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]