aboutsummaryrefslogtreecommitdiff
path: root/gdb
diff options
context:
space:
mode:
Diffstat (limited to 'gdb')
-rw-r--r--gdb/ChangeLog5
-rw-r--r--gdb/objfiles.c7
2 files changed, 9 insertions, 3 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 2056b31..690f76a 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,5 +1,10 @@
2009-07-14 Ulrich Weigand <uweigand@de.ibm.com>
+ * objfiles.c (objfile_relocate): Do not relocate the same
+ BLOCKVECTOR_MAP address map multiple times.
+
+2009-07-14 Ulrich Weigand <uweigand@de.ibm.com>
+
* remote.c (process_stop_reply): Access expedited target registers
in target_gdbarch.
diff --git a/gdb/objfiles.c b/gdb/objfiles.c
index 795d53b..69b366f 100644
--- a/gdb/objfiles.c
+++ b/gdb/objfiles.c
@@ -570,6 +570,10 @@ objfile_relocate (struct objfile *objfile, struct section_offsets *new_offsets)
continue;
bv = BLOCKVECTOR (s);
+ if (BLOCKVECTOR_MAP (bv))
+ addrmap_relocate (BLOCKVECTOR_MAP (bv),
+ ANOFFSET (delta, s->block_line_section));
+
for (i = 0; i < BLOCKVECTOR_NBLOCKS (bv); ++i)
{
struct block *b;
@@ -579,9 +583,6 @@ objfile_relocate (struct objfile *objfile, struct section_offsets *new_offsets)
b = BLOCKVECTOR_BLOCK (bv, i);
BLOCK_START (b) += ANOFFSET (delta, s->block_line_section);
BLOCK_END (b) += ANOFFSET (delta, s->block_line_section);
- if (BLOCKVECTOR_MAP (bv))
- addrmap_relocate (BLOCKVECTOR_MAP (bv),
- ANOFFSET (delta, s->block_line_section));
ALL_BLOCK_SYMBOLS (b, iter, sym)
{