mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-11-23 18:14:13 +08:00
* solib.h Update copyright year.
(struct so_list): Forward declaration. (solib_read_symbols): New prototype. * solib.c (solib_read_symbols): New function. (solib_add): Call solib_read_symbols to read in symbols. (update_solib_list): Call observer_notify_solib_loaded.
This commit is contained in:
parent
fbd1b305fd
commit
42a6e6a0ae
@ -1,5 +1,12 @@
|
||||
2005-01-12 Mark Kettenis <kettenis@gnu.org>
|
||||
|
||||
* solib.h Update copyright year.
|
||||
(struct so_list): Forward declaration.
|
||||
(solib_read_symbols): New prototype.
|
||||
* solib.c (solib_read_symbols): New function.
|
||||
(solib_add): Call solib_read_symbols to read in symbols.
|
||||
(update_solib_list): Call observer_notify_solib_loaded.
|
||||
|
||||
* i386bsd-nat.c: Update copyright year. Don't include
|
||||
<sys/param.h> and <sys/user.h>.
|
||||
(register_u_addr, kernel_u_size): Remove functions.
|
||||
|
59
gdb/solib.c
59
gdb/solib.c
@ -1,7 +1,8 @@
|
||||
/* Handle shared libraries for GDB, the GNU Debugger.
|
||||
|
||||
Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
|
||||
1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
|
||||
1999, 2000, 2001, 2002, 2003, 2005
|
||||
Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GDB.
|
||||
|
||||
@ -370,6 +371,33 @@ symbol_add_stub (void *arg)
|
||||
return (1);
|
||||
}
|
||||
|
||||
/* Read in symbols for shared object SO. If FROM_TTY is non-zero, be
|
||||
chatty about it. Return non-zero if any symbols were actually
|
||||
loaded. */
|
||||
|
||||
int
|
||||
solib_read_symbols (struct so_list *so, int from_tty)
|
||||
{
|
||||
if (so->symbols_loaded)
|
||||
{
|
||||
if (from_tty)
|
||||
printf_unfiltered ("Symbols already loaded for %s\n", so->so_name);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (catch_errors (symbol_add_stub, so,
|
||||
"Error while reading shared library symbols:\n",
|
||||
RETURN_MASK_ALL))
|
||||
{
|
||||
if (from_tty)
|
||||
printf_unfiltered ("Loaded symbols for %s\n", so->so_name);
|
||||
so->symbols_loaded = 1;
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* LOCAL FUNCTION
|
||||
|
||||
@ -480,8 +508,8 @@ update_solib_list (int from_tty, struct target_ops *target)
|
||||
/* If it's not on the inferior's list, remove it from GDB's tables. */
|
||||
else
|
||||
{
|
||||
/* Notify any observer that the SO has been unloaded
|
||||
before we remove it from the gdb tables. */
|
||||
/* Notify any observer that the shared object has been
|
||||
unloaded before we remove it from GDB's tables. */
|
||||
observer_notify_solib_unloaded (gdb);
|
||||
|
||||
*gdb_link = gdb->next;
|
||||
@ -534,6 +562,10 @@ update_solib_list (int from_tty, struct target_ops *target)
|
||||
count * sizeof (i->sections[0]));
|
||||
}
|
||||
}
|
||||
|
||||
/* Notify any observer that the shared object has been
|
||||
loaded now that we've added it to GDB's tables. */
|
||||
observer_notify_solib_loaded (i);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -585,28 +617,9 @@ solib_add (char *pattern, int from_tty, struct target_ops *target, int readsyms)
|
||||
if (! pattern || re_exec (gdb->so_name))
|
||||
{
|
||||
any_matches = 1;
|
||||
|
||||
if (gdb->symbols_loaded)
|
||||
{
|
||||
if (from_tty)
|
||||
printf_unfiltered ("Symbols already loaded for %s\n",
|
||||
gdb->so_name);
|
||||
}
|
||||
else if (readsyms)
|
||||
{
|
||||
if (catch_errors
|
||||
(symbol_add_stub, gdb,
|
||||
"Error while reading shared library symbols:\n",
|
||||
RETURN_MASK_ALL))
|
||||
{
|
||||
if (from_tty)
|
||||
printf_unfiltered ("Loaded symbols for %s\n",
|
||||
gdb->so_name);
|
||||
gdb->symbols_loaded = 1;
|
||||
if (readsyms && solib_read_symbols (gdb, from_tty))
|
||||
loaded_any_symbols = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (from_tty && pattern && ! any_matches)
|
||||
printf_unfiltered
|
||||
|
@ -1,5 +1,6 @@
|
||||
/* Shared library declarations for GDB, the GNU Debugger.
|
||||
Copyright 1992, 1993, 1995, 1998, 1999, 2000, 2001, 2003
|
||||
|
||||
Copyright 1992, 1993, 1995, 1998, 1999, 2000, 2001, 2003, 2005
|
||||
Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GDB.
|
||||
@ -23,6 +24,7 @@
|
||||
#define SOLIB_H
|
||||
|
||||
/* Forward decl's for prototypes */
|
||||
struct so_list;
|
||||
struct target_ops;
|
||||
|
||||
/* Called when we free all symtabs, to free the shared library information
|
||||
@ -38,6 +40,7 @@ extern void clear_solib (void);
|
||||
solib_add (filename, from_tty, targ, readsyms)
|
||||
|
||||
extern void solib_add (char *, int, struct target_ops *, int);
|
||||
extern int solib_read_symbols (struct so_list *, int);
|
||||
|
||||
/* Function to be called when the inferior starts up, to discover the names
|
||||
of shared libraries that are dynamically linked, the base addresses to
|
||||
|
Loading…
Reference in New Issue
Block a user