/* Shared library declarations for GDB, the GNU Debugger.
- Copyright (C) 1992, 1993, 1995, 1998, 1999, 2000, 2001, 2003, 2005, 2007
- Free Software Foundation, Inc.
+ Copyright (C) 1992-2014 Free Software Foundation, Inc.
This file is part of GDB.
struct so_list;
struct target_ops;
struct target_so_ops;
+struct program_space;
/* Called when we free all symtabs, to free the shared library information
- as well. */
+ as well. */
extern void clear_solib (void);
-/* Called to add symbols from a shared library to gdb's symbol table. */
+/* Called to add symbols from a shared library to gdb's symbol table. */
extern void solib_add (char *, int, struct target_ops *, int);
extern int solib_read_symbols (struct so_list *, int);
addresses to which they are linked, and sufficient information to
read in their symbols at a later time. */
-extern void solib_create_inferior_hook (void);
+extern void solib_create_inferior_hook (int from_tty);
/* If ADDR lies in a shared library, return its name. */
-extern char *solib_address (CORE_ADDR);
+extern char *solib_name_from_address (struct program_space *, CORE_ADDR);
+
+/* Return 1 if ADDR lies within SOLIB. */
+
+extern int solib_contains_address_p (const struct so_list *, CORE_ADDR);
+
+/* Return whether the data starting at VADDR, size SIZE, must be kept
+ in a core file for shared libraries loaded before "gcore" is used
+ to be handled correctly when the core file is loaded. This only
+ applies when the section would otherwise not be kept in the core
+ file (in particular, for readonly sections). */
+
+extern int solib_keep_data_in_core (CORE_ADDR vaddr, unsigned long size);
/* Return 1 if PC lies in the dynamic symbol resolution code of the
run time loader. */
extern int in_solib_dynsym_resolve_code (CORE_ADDR);
-/* Discard symbols that were auto-loaded from shared libraries. */
+/* Discard symbols that were auto-loaded from shared libraries. */
extern void no_shared_libraries (char *ignored, int from_tty);
/* Set the solib operations for GDBARCH to NEW_OPS. */
extern void set_solib_ops (struct gdbarch *gdbarch,
- struct target_so_ops *new_ops);
+ const struct target_so_ops *new_ops);
+
+/* Return non-zero if NAME is the libpthread shared library. */
+
+extern int libpthread_name_p (const char *name);
+
+/* Look up symbol from both symbol table and dynamic string table. */
+
+extern CORE_ADDR gdb_bfd_lookup_symbol (bfd *abfd,
+ int (*match_sym) (asymbol *, void *),
+ void *data);
+
+/* Look up symbol from symbol table. */
+
+extern CORE_ADDR gdb_bfd_lookup_symbol_from_symtab (bfd *abfd,
+ int (*match_sym) (asymbol *,
+ void *),
+ void *data);
+
+/* Enable or disable optional solib event breakpoints as appropriate. */
+
+extern void update_solib_breakpoints (void);
+
+/* Handle an solib event by calling solib_add. */
+
+extern void handle_solib_event (void);
#endif /* SOLIB_H */