This is the mail archive of the 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: [rfa] pc bounds checking and namespaces

David Carlton writes:
 > When calculating the pc bounds for a block in dwarf2read.c, we assume
 > that all functions contained in that block are immediate children of
 > the block.  I was using a patched version of GCC where this doesn't
 > hold - the dies associated to definitions of functions in namespaces
 > are children of a DW_TAG_namespace die instead of the
 > DW_TAG_compile_unit die.  I don't know where GCC 3.4 puts the
 > relevant dies, so this might not be an issue with GCC 3.4, but it
 > might be; it seems like fixing that assumption is a good idea in any
 > case.
 > So this patch takes the code to calculate the lowpc/highpc out of
 > psymtab_to_symtab_1 and read_file_scope (where that functionality had
 > been duplicated), extracts it to a new function get_scope_pc_bounds,
 > and then modifies that new function to handle DW_TAG_namespace
 > appropriately.
 > I tried to come up with a test case for this, but I wasn't
 > successful. :-( I can say that, before this patch, I used to see a lot
 > of "pc 0xNNNN in read in psymtab, but not in symtab" messages when
 > debugging, and now I don't.
 > Tested on GCC 3.2 both with and without DW_TAG_namespace,
 > i686-pc-linux-gnu, DWARF-2; no regressions.  OK to commit?

Again, a sanity check with 2.95 and -gdwarf-2 would be good.

 > -    {
 > -      /* Some compilers don't define a DW_AT_high_pc attribute for
 > -         the compilation unit.   If the DW_AT_high_pc is missing,
 > -         synthesize it, by scanning the DIE's below the compilation unit.  */

I'd rather keep this comment around, probably at the first call.

Ok otherwise.


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