* progspace.c (update_address_spaces): Update inferior address spaces
authorDaniel Jacobowitz <drow@false.org>
Tue, 2 Mar 2010 17:55:39 +0000 (17:55 +0000)
committerDaniel Jacobowitz <drow@false.org>
Tue, 2 Mar 2010 17:55:39 +0000 (17:55 +0000)
also.

gdb/ChangeLog
gdb/progspace.c

index 4140f2c336b7378cd93e048fd68679e3d7245b65..2f5bbdf2fa2b4781f8fba57530082393109f356e 100644 (file)
@@ -1,3 +1,8 @@
+2010-03-02  Daniel Jacobowitz  <dan@codesourcery.com>
+
+       * progspace.c (update_address_spaces): Update inferior address spaces
+       also.
+
 2010-03-02  Doug Evans  <dje@google.com>
 
        * dwarf2read.c (add_partial_subprogram): Add missing baseaddr to
index 259e641d0b2ae9bf0f6da66cf359fe8288f7af1b..42139fd4599e3bcc7f6bcfe7d3b5a64ed6162bfd 100644 (file)
@@ -430,24 +430,30 @@ void
 update_address_spaces (void)
 {
   int shared_aspace = gdbarch_has_shared_address_space (target_gdbarch);
-  struct address_space *aspace = NULL;
   struct program_space *pspace;
+  struct inferior *inf;
 
   init_address_spaces ();
 
-  ALL_PSPACES (pspace)
+  if (shared_aspace)
     {
-      free_address_space (pspace->aspace);
-
-      if (shared_aspace)
-       {
-         if (aspace == NULL)
-           aspace = new_address_space ();
-         pspace->aspace = aspace;
-       }
-      else
-       pspace->aspace = new_address_space ();
+      struct address_space *aspace = new_address_space ();
+      free_address_space (current_program_space->aspace);
+      ALL_PSPACES (pspace)
+       pspace->aspace = aspace;
     }
+  else
+    ALL_PSPACES (pspace)
+      {
+       free_address_space (pspace->aspace);
+       pspace->aspace = new_address_space ();
+      }
+
+  for (inf = inferior_list; inf; inf = inf->next)
+    if (gdbarch_has_global_solist (target_gdbarch))
+      inf->aspace = maybe_new_address_space ();
+    else
+      inf->aspace = inf->pspace->aspace;
 }
 
 /* Save the current program space so that it may be restored by a later