From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Berlin To: Jim Blandy Cc: Brian Grant , gdb@sources.redhat.com Subject: Re: support for compilation units with discontiguous address ranges? (.debug_ranges) Date: Fri, 20 Jul 2001 19:14:00 -0000 Message-id: <87hew7do4z.fsf@cgsoftware.com> References: <200107192155.OAA10252@grant-linux2.transmeta.com> X-SW-Source: 2001-07/msg00307.html Jim Blandy writes: > Brian Grant writes: >> Has anyone implemented dwarf2 support in gdb for compilation units with >> discontiguous ranges of addresses? > > No. Patches are welcome! > >> gcc 3.x doesn't seem to produce .debug_ranges and gdb 5.0 doesn't >> read it at all. gdb also seems to ignore .debug_aranges. > > That's right. > >> What currently happens in gdb is that all functions in .text1 >> and .text2 at addresses between foo() and bar() are attributed >> the file and line number of the last line of foo(). Their real, >> accurate line-number info is overshadowed completely. > > Right --- GDB misidentifies which compilation unit they belong to, so > it never looks at the right compilation units' line tables. > >> I noticed that gcc doesn't produce DW_AT_low_pc/high_pc fields for >> foobar.c, as it normally would for a DW_TAG_compilation_unit record, >> where all functions in the compilation unit were in the same >> section. > > Right, that's as required by the Dwarf 2 spec: > > The presence of low and high pc attributes in a compilation > unit entry imply that the code generated for that compilation > unit is contiguous and exists totally within the boundaries > specified by those two attributes. If that is not the case, > no low and high pc attributes should be produced. > > The Dwarf 2.1 spec says something similar. > >> Does anyone know of a workaround for this problem? > > I can only think of two options: > > 1) Don't do that. Put functions that need to go in separate segments > in separate .c files. > > 2) Implement DW_AT_ranges support in GCC and GDB. I have the first part of this done. I just haven't submitted the patch yet, because i haven't had time to update hte new dwarf2 reader to support it. -- "When I woke up this morning my girlfriend asked me, "Did you sleep good?" I said, "No, I made a few mistakes." "-Steven Wright