PR gdb/15538:

* dwarf2read.c (dwarf2_record_block_ranges): Ensure that the
	ranges section has been read.
This commit is contained in:
Tom Tromey 2013-05-13 16:56:09 +00:00
parent ac1ca910d7
commit d62bfeaff5
2 changed files with 9 additions and 2 deletions

View File

@ -1,3 +1,9 @@
2013-05-13 Tom Tromey <tromey@redhat.com>
PR gdb/15538:
* dwarf2read.c (dwarf2_record_block_ranges): Ensure that the
ranges section has been read.
2013-05-13 Tom Tromey <tromey@redhat.com>
PR exp/15364:

View File

@ -10493,7 +10493,7 @@ dwarf2_record_block_ranges (struct die_info *die, struct block *block,
address range list in the .debug_ranges section. */
unsigned long offset = (DW_UNSND (attr)
+ (need_ranges_base ? cu->ranges_base : 0));
const gdb_byte *buffer = dwarf2_per_objfile->ranges.buffer + offset;
const gdb_byte *buffer;
/* For some target architectures, but not others, the
read_address function sign-extends the addresses it returns.
@ -10512,7 +10512,7 @@ dwarf2_record_block_ranges (struct die_info *die, struct block *block,
CORE_ADDR base = cu->base_address;
int base_known = cu->base_known;
gdb_assert (dwarf2_per_objfile->ranges.readin);
dwarf2_read_section (objfile, &dwarf2_per_objfile->ranges);
if (offset >= dwarf2_per_objfile->ranges.size)
{
complaint (&symfile_complaints,
@ -10520,6 +10520,7 @@ dwarf2_record_block_ranges (struct die_info *die, struct block *block,
offset);
return;
}
buffer = dwarf2_per_objfile->ranges.buffer + offset;
for (;;)
{