| Index: gdb/minsyms.h
|
| diff --git a/gdb/minsyms.h b/gdb/minsyms.h
|
| index 8f0472fb32c61fcb2cc2dbde19e75c29e83618f9..95bbdc51f25543ea8d055e5db266c4a69e210c93 100644
|
| --- a/gdb/minsyms.h
|
| +++ b/gdb/minsyms.h
|
| @@ -1,6 +1,6 @@
|
| /* Minimal symbol table definitions for GDB.
|
|
|
| - Copyright (C) 2011-2012 Free Software Foundation, Inc.
|
| + Copyright (C) 2011-2013 Free Software Foundation, Inc.
|
|
|
| This file is part of GDB.
|
|
|
| @@ -20,6 +20,23 @@
|
| #ifndef MINSYMS_H
|
| #define MINSYMS_H
|
|
|
| +/* Several lookup functions return both a minimal symbol and the
|
| + objfile in which it is found. This structure is used in these
|
| + cases. */
|
| +
|
| +struct bound_minimal_symbol
|
| +{
|
| + /* The minimal symbol that was found, or NULL if no minimal symbol
|
| + was found. */
|
| +
|
| + struct minimal_symbol *minsym;
|
| +
|
| + /* If MINSYM is not NULL, then this is the objfile in which the
|
| + symbol is defined. */
|
| +
|
| + struct objfile *objfile;
|
| +};
|
| +
|
| /* This header declares most of the API for dealing with minimal
|
| symbols and minimal symbol tables. A few things are declared
|
| elsewhere; see below.
|
| @@ -71,7 +88,6 @@ struct cleanup *make_cleanup_discard_minimal_symbols (void);
|
| ADDRESS - the address of the symbol
|
| MS_TYPE - the type of the symbol
|
| SECTION - the symbol's section
|
| - BFD_SECTION - the symbol's BFD section; used to find the
|
| appropriate obj_section for the minimal symbol. This can be NULL.
|
| OBJFILE - the objfile associated with the minimal symbol. */
|
|
|
| @@ -82,14 +98,12 @@ struct minimal_symbol *prim_record_minimal_symbol_full
|
| CORE_ADDR address,
|
| enum minimal_symbol_type ms_type,
|
| int section,
|
| - asection *bfd_section,
|
| struct objfile *objfile);
|
|
|
| /* Like prim_record_minimal_symbol_full, but:
|
| - uses strlen to compute NAME_LEN,
|
| - passes COPY_NAME = 0,
|
| - - passes SECTION = 0,
|
| - - and passes BFD_SECTION = NULL.
|
| + - and passes a default SECTION, depending on the type
|
|
|
| This variant does not return the new symbol. */
|
|
|
| @@ -106,7 +120,6 @@ struct minimal_symbol *prim_record_minimal_symbol_and_info
|
| CORE_ADDR,
|
| enum minimal_symbol_type,
|
| int section,
|
| - asection *bfd_section,
|
| struct objfile *);
|
|
|
| /* Install the minimal symbols that have been collected into the given
|
| @@ -149,14 +162,6 @@ unsigned int msymbol_hash_iw (const char *);
|
|
|
|
|
|
|
| -/* Return the objfile that holds the minimal symbol SYM. Every
|
| - minimal symbols is held by some objfile; this will never return
|
| - NULL. */
|
| -
|
| -struct objfile *msymbol_objfile (struct minimal_symbol *sym);
|
| -
|
| -
|
| -
|
| /* Look through all the current minimal symbol tables and find the
|
| first minimal symbol that matches NAME. If OBJF is non-NULL, limit
|
| the search to that objfile. If SFILE is non-NULL, the only file-scope
|
| @@ -168,13 +173,15 @@ struct minimal_symbol *lookup_minimal_symbol (const char *,
|
| const char *,
|
| struct objfile *);
|
|
|
| +/* Like lookup_minimal_symbol, but searches all files and objfiles
|
| + and returns a bound minimal symbol. */
|
| +
|
| +struct bound_minimal_symbol lookup_bound_minimal_symbol (const char *);
|
| +
|
| /* Find the minimal symbol named NAME, and return both the minsym
|
| - struct and its objfile. This only checks the linkage name. Sets
|
| - *OBJFILE_P and returns the minimal symbol, if it is found. If it
|
| - is not found, returns NULL. */
|
| + struct and its objfile. This only checks the linkage name. */
|
|
|
| -struct minimal_symbol *lookup_minimal_symbol_and_objfile (const char *,
|
| - struct objfile **);
|
| +struct bound_minimal_symbol lookup_minimal_symbol_and_objfile (const char *);
|
|
|
| /* Look through all the current minimal symbol tables and find the
|
| first minimal symbol that matches NAME and has text type. If OBJF
|
| @@ -213,10 +220,10 @@ struct minimal_symbol *lookup_minimal_symbol_by_pc_name
|
| If SECTION is NULL, this uses the result of find_pc_section
|
| instead.
|
|
|
| - Returns a pointer to the minimal symbol if such a symbol is found,
|
| - or NULL if PC is not in a suitable range. */
|
| + The result has a non-NULL 'minsym' member if such a symbol is
|
| + found, or NULL if PC is not in a suitable range. */
|
|
|
| -struct minimal_symbol *lookup_minimal_symbol_by_pc_section
|
| +struct bound_minimal_symbol lookup_minimal_symbol_by_pc_section
|
| (CORE_ADDR,
|
| struct obj_section *);
|
|
|
| @@ -226,13 +233,7 @@ struct minimal_symbol *lookup_minimal_symbol_by_pc_section
|
| This is a wrapper that calls lookup_minimal_symbol_by_pc_section
|
| with a NULL section argument. */
|
|
|
| -struct minimal_symbol *lookup_minimal_symbol_by_pc (CORE_ADDR);
|
| -
|
| -/* Check if PC is in a shared library trampoline code stub.
|
| - Return minimal symbol for the trampoline entry or NULL if PC is not
|
| - in a trampoline code stub. */
|
| -
|
| -struct minimal_symbol *lookup_solib_trampoline_symbol_by_pc (CORE_ADDR);
|
| +struct bound_minimal_symbol lookup_minimal_symbol_by_pc (CORE_ADDR);
|
|
|
| /* Iterate over all the minimal symbols in the objfile OBJF which
|
| match NAME. Both the ordinary and demangled names of each symbol
|
|
|