OSDN Git Service

2009-08-17 Pedro Alves <pedro@codesourcery.com>>
authorPedro Alves <pedro@codesourcery.com>
Mon, 17 Aug 2009 11:16:11 +0000 (11:16 +0000)
committerPedro Alves <pedro@codesourcery.com>
Mon, 17 Aug 2009 11:16:11 +0000 (11:16 +0000)
* objfiles.c (objfile_relocate): Relocate the entry point before
relocating the section offsets.  Flush the section map before
resetting breakpoints.

gdb/ChangeLog
gdb/objfiles.c

index 4215476..3a02f7d 100644 (file)
@@ -1,3 +1,9 @@
+2009-08-17  Pedro Alves  <pedro@codesourcery.com>>
+
+       * objfiles.c (objfile_relocate): Relocate the entry point before
+       relocating the section offsets.  Flush the section map before
+       resetting breakpoints.
+
 2009-08-14  Doug Evans  <dje@google.com>
 
        * symfile.c (find_separate_debug_file): Remove double free of
index 586f5d0..92db65e 100644 (file)
@@ -666,12 +666,6 @@ objfile_relocate (struct objfile *objfile, struct section_offsets *new_offsets)
      to be out of order.  */
   msymbols_sort (objfile);
 
-  {
-    int i;
-    for (i = 0; i < objfile->num_sections; ++i)
-      (objfile->section_offsets)->offsets[i] = ANOFFSET (new_offsets, i);
-  }
-
   if (objfile->ei.entry_point != ~(CORE_ADDR) 0)
     {
       /* Relocate ei.entry_point with its section offset, use SECT_OFF_TEXT
@@ -684,6 +678,15 @@ objfile_relocate (struct objfile *objfile, struct section_offsets *new_offsets)
         objfile->ei.entry_point += ANOFFSET (delta, SECT_OFF_TEXT (objfile));
     }
 
+  {
+    int i;
+    for (i = 0; i < objfile->num_sections; ++i)
+      (objfile->section_offsets)->offsets[i] = ANOFFSET (new_offsets, i);
+  }
+
+  /* Rebuild section map next time we need it.  */
+  objfiles_changed_p = 1;
+
   /* Update the table in exec_ops, used to read memory.  */
   ALL_OBJFILE_OSECTIONS (objfile, s)
     {
@@ -695,7 +698,6 @@ objfile_relocate (struct objfile *objfile, struct section_offsets *new_offsets)
 
   /* Relocate breakpoints as necessary, after things are relocated. */
   breakpoint_re_set ();
-  objfiles_changed_p = 1;  /* Rebuild section map next time we need it.  */
 }
 \f
 /* Many places in gdb want to test just to see if we have any partial