OSDN Git Service

* infrun.c (follow_exec): Reset shared libraries before adding the
authorPedro Alves <pedro@codesourcery.com>
Tue, 8 Jul 2008 10:31:16 +0000 (10:31 +0000)
committerPedro Alves <pedro@codesourcery.com>
Tue, 8 Jul 2008 10:31:16 +0000 (10:31 +0000)
main exec file.

gdb/ChangeLog
gdb/infrun.c

index 059d19a..784ad45 100644 (file)
@@ -1,3 +1,8 @@
+2008-07-08  Pedro Alves  <pedro@codesourcery.com>
+
+       * infrun.c (follow_exec): Reset shared libraries before adding the
+       main exec file.
+
 2008-07-07  Jan Kratochvil  <jan.kratochvil@redhat.com>
 
        * breakpoint.c (bpstat_copy): Call RELEASE_VALUE on the new OLD_VAL.
index 2c4ebc8..dbb6110 100644 (file)
@@ -419,13 +419,17 @@ follow_exec (int pid, char *execd_pathname)
   /* That a.out is now the one to use. */
   exec_file_attach (execd_pathname, 0);
 
-  /* And also is where symbols can be found. */
+  /* Reset the shared library package.  This ensures that we get a
+     shlib event when the child reaches "_start", at which point the
+     dld will have had a chance to initialize the child.  */
+  /* Also, loading a symbol file below may trigger symbol lookups, and
+     we don't want those to be satisfied by the libraries of the
+     previous incarnation of this process.  */
+  no_shared_libraries (NULL, 0);
+
+  /* Load the main file's symbols.  */
   symbol_file_add_main (execd_pathname, 0);
 
-  /* Reset the shared library package.  This ensures that we get
-     a shlib event when the child reaches "_start", at which point
-     the dld will have had a chance to initialize the child. */
-  no_shared_libraries (NULL, 0);
 #ifdef SOLIB_CREATE_INFERIOR_HOOK
   SOLIB_CREATE_INFERIOR_HOOK (PIDGET (inferior_ptid));
 #else