diff options
author | Daniel Jacobowitz <drow@false.org> | 2007-10-09 17:59:01 +0000 |
---|---|---|
committer | Daniel Jacobowitz <drow@false.org> | 2007-10-09 17:59:01 +0000 |
commit | 2ec9a4f8d14053325856abcd5eb8c1b967bc1b1d (patch) | |
tree | 396707d99ef3b5d15a7b8cb9442c02cb6fa3d8b2 | |
parent | e2aacd2c759620f4d18142f811c916adcf6fb7b4 (diff) | |
download | fsf-binutils-gdb-2ec9a4f8d14053325856abcd5eb8c1b967bc1b1d.zip fsf-binutils-gdb-2ec9a4f8d14053325856abcd5eb8c1b967bc1b1d.tar.gz fsf-binutils-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/ChangeLog | 5 | ||||
-rw-r--r-- | gdb/solib-svr4.c | 8 | ||||
-rw-r--r-- | gdb/testsuite/ChangeLog | 6 | ||||
-rw-r--r-- | gdb/testsuite/gdb.server/server-run.exp | 7 |
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" |