gdb/
[deliverable/binutils-gdb.git] / gdb / infcmd.c
index aa3646b483c938b8d8bccb0722ef4b8141f04686..3e8bf5d18842464edeb867ca6e3ffdfa531cd3ec 100644 (file)
@@ -421,6 +421,9 @@ post_create_inferior (struct target_ops *target, int from_tty)
 
   if (exec_bfd)
     {
+      const unsigned solib_add_generation
+       = current_program_space->solib_add_generation;
+
       /* Create the hooks to handle shared library load and unload
         events.  */
 #ifdef SOLIB_CREATE_INFERIOR_HOOK
@@ -428,24 +431,29 @@ post_create_inferior (struct target_ops *target, int from_tty)
 #else
       solib_create_inferior_hook (from_tty);
 #endif
-    }
-
-  /* If the solist is global across processes, there's no need to
-     refetch it here.  */
-  if (exec_bfd && !gdbarch_has_global_solist (target_gdbarch))
-    {
-      /* Sometimes the platform-specific hook loads initial shared
-        libraries, and sometimes it doesn't.  If it doesn't FROM_TTY will be
-        incorrectly 0 but such solib targets should be fixed anyway.  If we
-        made all the inferior hook methods consistent, this call could be
-        removed.  Call it only after the solib target has been initialized by
-        solib_create_inferior_hook.  */
 
+      if (current_program_space->solib_add_generation == solib_add_generation)
+       {
+         /* The platform-specific hook should load initial shared libraries,
+            but didn't.  FROM_TTY will be incorrectly 0 but such solib
+            targets should be fixed anyway.  Call it only after the solib
+            target has been initialized by solib_create_inferior_hook.  */
+
+         if (info_verbose)
+           warning (_("platform-specific solib_create_inferior_hook did "
+                      "not load initial shared libraries."));
+
+         /* If the solist is global across processes, there's no need to
+            refetch it here.  */
+         if (!gdbarch_has_global_solist (target_gdbarch))
+           {
 #ifdef SOLIB_ADD
-      SOLIB_ADD (NULL, 0, target, auto_solib_add);
+             SOLIB_ADD (NULL, 0, target, auto_solib_add);
 #else
-      solib_add (NULL, 0, target, auto_solib_add);
+             solib_add (NULL, 0, target, auto_solib_add);
 #endif
+           }
+       }
     }
 
   /* If the user sets watchpoints before execution having started,
@@ -495,6 +503,7 @@ run_command_1 (char *args, int from_tty, int tbreak_at_main)
   char *exec_file;
   struct cleanup *old_chain;
   ptid_t ptid;
+  struct ui_out *uiout = current_uiout;
 
   dont_repeat ();
 
@@ -1413,6 +1422,7 @@ print_return_value (struct type *func_type, struct type *value_type)
   struct cleanup *old_chain;
   struct ui_stream *stb;
   struct value *value;
+  struct ui_out *uiout = current_uiout;
 
   CHECK_TYPEDEF (value_type);
   gdb_assert (TYPE_CODE (value_type) != TYPE_CODE_VOID);
This page took 0.024804 seconds and 4 git commands to generate.