aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Jacobowitz <drow@false.org>2007-10-09 17:59:01 +0000
committerDaniel Jacobowitz <drow@false.org>2007-10-09 17:59:01 +0000
commit2ec9a4f8d14053325856abcd5eb8c1b967bc1b1d (patch)
tree396707d99ef3b5d15a7b8cb9442c02cb6fa3d8b2
parente2aacd2c759620f4d18142f811c916adcf6fb7b4 (diff)
downloadgdb-2ec9a4f8d14053325856abcd5eb8c1b967bc1b1d.zip
gdb-2ec9a4f8d14053325856abcd5eb8c1b967bc1b1d.tar.gz
gdb-2ec9a4f8d14053325856abcd5eb8c1b967bc1b1d.tar.bz2
* solib-svr4.c (enable_break): Add the dynamic linker also if
auxv succeeds. * gdb.server/server-run.exp: Test for dynamic linker symbols.
-rw-r--r--gdb/ChangeLog5
-rw-r--r--gdb/solib-svr4.c8
-rw-r--r--gdb/testsuite/ChangeLog6
-rw-r--r--gdb/testsuite/gdb.server/server-run.exp7
4 files changed, 23 insertions, 3 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 9374a31..c15b0be 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,8 @@
+2007-10-09 Daniel Jacobowitz <dan@codesourcery.com>
+
+ * solib-svr4.c (enable_break): Add the dynamic linker also if
+ auxv succeeds.
+
2007-10-09 Carlos Eduardo Seo <cseo@linux.vnet.ibm.com>
* MAINTAINERS (Write After Approval): Add self.
diff --git a/gdb/solib-svr4.c b/gdb/solib-svr4.c
index 702e6f6..c6dfe2e 100644
--- a/gdb/solib-svr4.c
+++ b/gdb/solib-svr4.c
@@ -986,6 +986,7 @@ enable_break (void)
char *buf;
CORE_ADDR load_addr = 0;
int load_addr_found = 0;
+ int loader_found_in_list = 0;
struct so_list *so;
bfd *tmp_bfd = NULL;
struct target_ops *tmp_bfd_target;
@@ -1038,6 +1039,7 @@ enable_break (void)
if (strcmp (buf, so->so_original_name) == 0)
{
load_addr_found = 1;
+ loader_found_in_list = 1;
load_addr = LM_ADDR_CHECK (so, tmp_bfd);
break;
}
@@ -1058,9 +1060,11 @@ enable_break (void)
fallback method because it has actually been working well in
most cases. */
if (!load_addr_found)
+ load_addr = (read_pc ()
+ - exec_entry_point (tmp_bfd, tmp_bfd_target));
+
+ if (!loader_found_in_list)
{
- load_addr = (read_pc ()
- - exec_entry_point (tmp_bfd, tmp_bfd_target));
debug_loader_name = xstrdup (buf);
debug_loader_offset_p = 1;
debug_loader_offset = load_addr;
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index 2906055..27d0631 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,4 +1,8 @@
-2007/10/09 Pierre Muller <muller@ics.u-strasbg.fr>
+2007-10-09 Daniel Jacobowitz <dan@codesourcery.com>
+
+ * gdb.server/server-run.exp: Test for dynamic linker symbols.
+
+2007-10-09 Pierre Muller <muller@ics.u-strasbg.fr>
* lib/gdb.exp (gdb_run_cmd): Move comment outside
of gdb_expect call, to avoid interruption.
diff --git a/gdb/testsuite/gdb.server/server-run.exp b/gdb/testsuite/gdb.server/server-run.exp
index 8a5749d..f2a6125 100644
--- a/gdb/testsuite/gdb.server/server-run.exp
+++ b/gdb/testsuite/gdb.server/server-run.exp
@@ -38,5 +38,12 @@ gdb_load $binfile
gdbserver_run ""
gdb_reinitialize_dir $srcdir/$subdir
+# We are now stopped at the program's entry point. On targets which use
+# SVR4 dynamic linking, we should have automatically loaded symbols for
+# the dynamic linker.
+if { [istarget *-*-linux*] } {
+ gdb_test "info shared" "From.*To.*" "loaded dynamic linker"
+}
+
gdb_breakpoint main
gdb_test "continue" "Breakpoint.* main .*" "continue to main"