[archer-tromey-dwz-multifile-rebase] Fix DWARF files reading (Tom Tromey).

This commit is contained in:
Jan Kratochvil 2012-07-06 19:30:32 +02:00
parent 5387893eab
commit e7f1c832a7
2 changed files with 14 additions and 10 deletions

View File

@ -2,7 +2,7 @@ http://sourceware.org/gdb/wiki/ProjectArcher
http://sourceware.org/gdb/wiki/ArcherBranchManagement http://sourceware.org/gdb/wiki/ArcherBranchManagement
GIT snapshot: GIT snapshot:
commit f07a2a24c493eebc9df6b7c9ca8c7fe0813aaffd commit b478323cbd38598902fa2efb1794192d7ba627b1
branch `archer' - the merge of branches: branch `archer' - the merge of branches:
archer-jankratochvil-vla archer-jankratochvil-vla
@ -1501,7 +1501,7 @@ index e9d06a3..bfa6776 100644
/* Compile a DWARF location expression to an agent expression. /* Compile a DWARF location expression to an agent expression.
diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
index 52288e8..447dc25 100644 index 52288e8..603b669 100644
--- a/gdb/dwarf2read.c --- a/gdb/dwarf2read.c
+++ b/gdb/dwarf2read.c +++ b/gdb/dwarf2read.c
@@ -64,20 +64,12 @@ @@ -64,20 +64,12 @@
@ -3553,7 +3553,7 @@ index 52288e8..447dc25 100644
} }
} }
@@ -17008,28 +17548,34 @@ dwarf2_per_cu_text_offset (struct dwarf2_per_cu_data *per_cu) @@ -17008,28 +17548,35 @@ dwarf2_per_cu_text_offset (struct dwarf2_per_cu_data *per_cu)
static struct dwarf2_per_cu_data * static struct dwarf2_per_cu_data *
dwarf2_find_containing_comp_unit (sect_offset offset, dwarf2_find_containing_comp_unit (sect_offset offset,
@ -3575,8 +3575,9 @@ index 52288e8..447dc25 100644
- >= offset.sect_off) - >= offset.sect_off)
+ mid_cu = dwarf2_per_objfile->all_comp_units[mid]; + mid_cu = dwarf2_per_objfile->all_comp_units[mid];
+ cu_off = &mid_cu->offset; + cu_off = &mid_cu->offset;
+ if (mid_cu->is_dwz >= offset_in_dwz + if (mid_cu->is_dwz > offset_in_dwz
+ && cu_off->sect_off >= offset.sect_off) + || (mid_cu->is_dwz == offset_in_dwz
+ && cu_off->sect_off >= offset.sect_off))
high = mid; high = mid;
else else
low = mid + 1; low = mid + 1;
@ -3593,7 +3594,7 @@ index 52288e8..447dc25 100644
error (_("Dwarf Error: could not find partial DIE containing " error (_("Dwarf Error: could not find partial DIE containing "
"offset 0x%lx [in module %s]"), "offset 0x%lx [in module %s]"),
(long) offset.sect_off, bfd_get_filename (objfile->obfd)); (long) offset.sect_off, bfd_get_filename (objfile->obfd));
@@ -17270,6 +17816,25 @@ per_cu_offset_and_type_eq (const void *item_lhs, const void *item_rhs) @@ -17270,6 +17817,25 @@ per_cu_offset_and_type_eq (const void *item_lhs, const void *item_rhs)
&& ofs_lhs->offset.sect_off == ofs_rhs->offset.sect_off); && ofs_lhs->offset.sect_off == ofs_rhs->offset.sect_off);
} }
@ -3619,7 +3620,7 @@ index 52288e8..447dc25 100644
/* Set the type associated with DIE to TYPE. Save it in CU's hash /* Set the type associated with DIE to TYPE. Save it in CU's hash
table if necessary. For convenience, return TYPE. table if necessary. For convenience, return TYPE.
@@ -17294,6 +17859,8 @@ set_die_type (struct die_info *die, struct type *type, struct dwarf2_cu *cu) @@ -17294,6 +17860,8 @@ set_die_type (struct die_info *die, struct type *type, struct dwarf2_cu *cu)
struct dwarf2_per_cu_offset_and_type **slot, ofs; struct dwarf2_per_cu_offset_and_type **slot, ofs;
struct objfile *objfile = cu->objfile; struct objfile *objfile = cu->objfile;
@ -3628,7 +3629,7 @@ index 52288e8..447dc25 100644
/* For Ada types, make sure that the gnat-specific data is always /* For Ada types, make sure that the gnat-specific data is always
initialized (if not already set). There are a few types where initialized (if not already set). There are a few types where
we should not be doing so, because the type-specific area is we should not be doing so, because the type-specific area is
@@ -17471,53 +18038,13 @@ show_dwarf2_cmd (char *args, int from_tty) @@ -17471,53 +18039,13 @@ show_dwarf2_cmd (char *args, int from_tty)
cmd_show_list (show_dwarf2_cmdlist, from_tty, ""); cmd_show_list (show_dwarf2_cmdlist, from_tty, "");
} }
@ -3683,7 +3684,7 @@ index 52288e8..447dc25 100644
for (ix = 0; ix < dwarf2_per_objfile->n_comp_units; ++ix) for (ix = 0; ix < dwarf2_per_objfile->n_comp_units; ++ix)
VEC_free (dwarf2_per_cu_ptr, VEC_free (dwarf2_per_cu_ptr,
@@ -17527,6 +18054,9 @@ dwarf2_per_objfile_free (struct objfile *objfile, void *d) @@ -17527,6 +18055,9 @@ dwarf2_per_objfile_free (struct objfile *objfile, void *d)
if (data->dwo_files) if (data->dwo_files)
free_dwo_files (data->dwo_files, objfile); free_dwo_files (data->dwo_files, objfile);

View File

@ -35,7 +35,7 @@ Version: 7.4.50.%{snap}
# The release always contains a leading reserved number, start it at 1. # The release always contains a leading reserved number, start it at 1.
# `upstream' is not a part of `name' to stay fully rpm dependencies compatible for the testing. # `upstream' is not a part of `name' to stay fully rpm dependencies compatible for the testing.
Release: 10%{?dist} Release: 11%{?dist}
License: GPLv3+ and GPLv3+ with exceptions and GPLv2+ and GPLv2+ with exceptions and GPL+ and LGPLv2+ and BSD and Public Domain License: GPLv3+ and GPLv3+ with exceptions and GPLv2+ and GPLv2+ with exceptions and GPL+ and LGPLv2+ and BSD and Public Domain
Group: Development/Debuggers Group: Development/Debuggers
@ -1352,6 +1352,9 @@ fi
%endif # 0%{!?el5:1} || "%{_target_cpu}" == "noarch" %endif # 0%{!?el5:1} || "%{_target_cpu}" == "noarch"
%changelog %changelog
* Fri Jul 6 2012 Jan Kratochvil <jan.kratochvil@redhat.com> - 7.4.50.20120703-11.fc18
- [archer-tromey-dwz-multifile-rebase] Fix DWARF files reading (Tom Tromey).
* Fri Jul 6 2012 Jan Kratochvil <jan.kratochvil@redhat.com> - 7.4.50.20120703-10.fc18 * Fri Jul 6 2012 Jan Kratochvil <jan.kratochvil@redhat.com> - 7.4.50.20120703-10.fc18
- Fix build-id-core-loads internal error (BZ 837870). - Fix build-id-core-loads internal error (BZ 837870).