aboutsummaryrefslogtreecommitdiff
path: root/gdb/solib-svr4.c
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 /gdb/solib-svr4.c
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.
Diffstat (limited to 'gdb/solib-svr4.c')
-rw-r--r--gdb/solib-svr4.c8
1 files changed, 6 insertions, 2 deletions
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;