/* Shared library declarations for GDB, the GNU Debugger.
- Copyright (C) 1992, 1993, 1995, 1998, 1999, 2000, 2001, 2003, 2005, 2007,
- 2008, 2009 Free Software Foundation, Inc.
+ Copyright (C) 1992-1993, 1995, 1998-2001, 2003, 2005, 2007-2012 Free
+ Software Foundation, Inc.
This file is part of GDB.
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 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);
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 bfd_lookup_symbol_from_symtab (bfd *abfd,
+ int (*match_sym) (asymbol *,
+ void *),
+ void *data);
+
#endif /* SOLIB_H */