summaryrefslogtreecommitdiff
path: root/gdb/solib.c
diff options
context:
space:
mode:
authorKevin Buettner <kevinb@redhat.com>2000-03-21 22:37:42 +0000
committerKevin Buettner <kevinb@redhat.com>2000-03-21 22:37:42 +0000
commit15e7646bffc5f472602dfb7149d0ae4899e067a9 (patch)
tree7f8b146fca47afe6c6d81d04e754c75f39f84fc2 /gdb/solib.c
parent2147266a646e6a8bf75fbde94664e20eca1ec546 (diff)
downloadgdb-15e7646bffc5f472602dfb7149d0ae4899e067a9.tar.gz
Make sure section addresses from a shared object are correctly set in
a new struct objfile.
Diffstat (limited to 'gdb/solib.c')
-rw-r--r--gdb/solib.c16
1 files changed, 7 insertions, 9 deletions
diff --git a/gdb/solib.c b/gdb/solib.c
index edfcb22864e..621bd6cc425 100644
--- a/gdb/solib.c
+++ b/gdb/solib.c
@@ -1155,6 +1155,7 @@ symbol_add_stub (arg)
{
register struct so_list *so = (struct so_list *) arg; /* catch_errs bogon */
CORE_ADDR text_addr = 0;
+ struct section_addr_info *sap;
/* Have we already loaded this shared object? */
ALL_OBJFILES (so->objfile)
@@ -1181,15 +1182,12 @@ symbol_add_stub (arg)
+ LM_ADDR (so);
}
- {
- struct section_addr_info section_addrs;
-
- memset (&section_addrs, 0, sizeof (section_addrs));
- section_addrs.text_addr = text_addr;
-
- so->objfile = symbol_file_add (so->so_name, so->from_tty,
- &section_addrs, 0, OBJF_SHARED);
- }
+ sap = build_section_addr_info_from_section_table (so->sections,
+ so->sections_end);
+ sap->text_addr = text_addr;
+ so->objfile = symbol_file_add (so->so_name, so->from_tty,
+ sap, 0, OBJF_SHARED);
+ free_section_addr_info (sap);
return (1);
}