/* Shared library declarations for GDB, the GNU Debugger.
- Copyright (C) 1990-2015 Free Software Foundation, Inc.
+ Copyright (C) 1990-2016 Free Software Foundation, Inc.
This file is part of GDB.
There may not be just one (e.g. if two segments are relocated
differently); but this is only used for "info sharedlibrary". */
CORE_ADDR addr_low, addr_high;
-
- /* Build id decoded from .note.gnu.build-id without note header. This is
- actual BUILD_ID which comes either from the remote target via qXfer
- packet or via reading target memory. Note that if there's a
- mismatch with the associated bfd then so->abfd will be cleared.
- Reading target memory should be done by following execution view
- of the binary (following program headers in the case of ELF).
- Computing address from the linking view (following ELF section
- headers) may give incorrect build-id memory address despite the
- symbols still match.
- Such an example is a prelinked vs. unprelinked i386 ELF file. */
- size_t build_idsz;
- gdb_byte *build_id;
};
struct target_so_ops
/* Target dependent code to run after child process fork. */
void (*solib_create_inferior_hook) (int from_tty);
- /* Do additional symbol handling, lookup, etc. after symbols for a
- shared object have been loaded in the usual way. This is
- called to do any system specific symbol handling that might be
- needed. */
- void (*special_symbol_handling) (void);
-
/* Construct a list of the currently loaded shared objects. This
list does not include an entry for the main executable file.
unsigned o_flags, char **temp_pathname);
/* Hook for looking up global symbols in a library-specific way. */
- struct symbol * (*lookup_lib_global_symbol) (struct objfile *objfile,
- const char *name,
- const domain_enum domain);
+ struct block_symbol (*lookup_lib_global_symbol)
+ (struct objfile *objfile,
+ const char *name,
+ const domain_enum domain);
/* Given two so_list objects, one from the GDB thread list
and another from the list returned by current_sos, return 1
NULL, in which case no specific preprocessing is necessary
for this target. */
void (*handle_event) (void);
-
- /* Return NULL if SO does match target SO it is supposed to
- represent. Otherwise return string describing why it does not match.
- Caller has to free the string. */
- char *(*validate) (const struct so_list *so);
};
/* Free the memory associated with a (so_list *). */
extern struct target_so_ops *current_target_so_ops;
/* Handler for library-specific global symbol lookup in solib.c. */
-struct symbol *solib_global_lookup (struct objfile *objfile,
- const char *name,
- const domain_enum domain);
+struct block_symbol solib_global_lookup (struct objfile *objfile,
+ const char *name,
+ const domain_enum domain);
#endif