From: Doug Evans Date: Fri, 29 Mar 2013 00:18:32 +0000 (+0000) Subject: * dwarf2read.c (create_addrmap_from_index): Complain about bad CU X-Git-Tag: sid-snapshot-20130401~20 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=f652bce2eecba0f090550c462a356a65a379fada;p=platform%2Fupstream%2Fbinutils.git * dwarf2read.c (create_addrmap_from_index): Complain about bad CU index numbers. --- diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 043093e01a8..2838b3c9847 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,8 @@ 2013-03-28 Doug Evans + * dwarf2read.c (create_addrmap_from_index): Complain about bad CU + index numbers. + * dwarf2read.c (dw2_get_file_names): Delete arg "objfile". All callers updated. (dw2_print_stats): Print #read CUs too. diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c index 2062448acf5..a3e68cd0613 100644 --- a/gdb/dwarf2read.c +++ b/gdb/dwarf2read.c @@ -2530,9 +2530,18 @@ create_addrmap_from_index (struct objfile *objfile, struct mapped_index *index) iter += 8; cu_index = extract_unsigned_integer (iter, 4, BFD_ENDIAN_LITTLE); iter += 4; - - addrmap_set_empty (mutable_map, lo + baseaddr, hi + baseaddr - 1, - dw2_get_cu (cu_index)); + + if (cu_index < dwarf2_per_objfile->n_comp_units) + { + addrmap_set_empty (mutable_map, lo + baseaddr, hi + baseaddr - 1, + dw2_get_cu (cu_index)); + } + else + { + complaint (&symfile_complaints, + _(".gdb_index address table has invalid CU number %u"), + (unsigned) cu_index); + } } objfile->psymtabs_addrmap = addrmap_create_fixed (mutable_map,