diff options
Diffstat (limited to 'gdb')
-rw-r--r-- | gdb/ChangeLog | 5 | ||||
-rw-r--r-- | gdb/objfiles.c | 7 |
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) { |