aboutsummaryrefslogtreecommitdiff
path: root/gdb
diff options
context:
space:
mode:
authorPedro Alves <palves@redhat.com>2008-07-08 10:31:16 +0000
committerPedro Alves <palves@redhat.com>2008-07-08 10:31:16 +0000
commitcce9b6bff92ae507e4517198c4b64e268f975760 (patch)
treedec5a23fc60b028fc475900d9e5c4748beba74f6 /gdb
parent72d4c02fe8da31ccb118ac692b22f5cbf6be0d1a (diff)
downloadgdb-cce9b6bff92ae507e4517198c4b64e268f975760.zip
gdb-cce9b6bff92ae507e4517198c4b64e268f975760.tar.gz
gdb-cce9b6bff92ae507e4517198c4b64e268f975760.tar.bz2
* infrun.c (follow_exec): Reset shared libraries before adding the
main exec file.
Diffstat (limited to 'gdb')
-rw-r--r--gdb/ChangeLog5
-rw-r--r--gdb/infrun.c14
2 files changed, 14 insertions, 5 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 059d19a..784ad45 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -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.
diff --git a/gdb/infrun.c b/gdb/infrun.c
index 2c4ebc8..dbb6110 100644
--- a/gdb/infrun.c
+++ b/gdb/infrun.c
@@ -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