#include "defs.h"
#include <ctype.h>
#include "gdb_string.h"
#include "symtab.h"
#include "bfd.h"
#include "filenames.h"
#include "symfile.h"
#include "objfiles.h"
#include "demangle.h"
#include "value.h"
#include "cp-abi.h"
#include "target.h"
#include "cp-support.h"
#include "language.h"
#include "cli/cli-utils.h"
Go to the source code of this file.
Defines |
#define | BUNCH_SIZE 127 |
Functions |
unsigned int | msymbol_hash_iw (const char *string) |
unsigned int | msymbol_hash (const char *string) |
struct minimal_symbol * | lookup_minimal_symbol (const char *name, const char *sfile, struct objfile *objf) |
struct bound_minimal_symbol | lookup_bound_minimal_symbol (const char *name) |
void | iterate_over_minimal_symbols (struct objfile *objf, const char *name, void(*callback)(struct minimal_symbol *, void *), void *user_data) |
struct minimal_symbol * | lookup_minimal_symbol_text (const char *name, struct objfile *objf) |
struct minimal_symbol * | lookup_minimal_symbol_by_pc_name (CORE_ADDR pc, const char *name, struct objfile *objf) |
struct minimal_symbol * | lookup_minimal_symbol_solib_trampoline (const char *name, struct objfile *objf) |
struct bound_minimal_symbol | lookup_minimal_symbol_by_pc_section (CORE_ADDR pc, struct obj_section *section) |
struct bound_minimal_symbol | lookup_minimal_symbol_by_pc (CORE_ADDR pc) |
int | in_gnu_ifunc_stub (CORE_ADDR pc) |
struct bound_minimal_symbol | lookup_minimal_symbol_and_objfile (const char *name) |
void | init_minimal_symbol_collection (void) |
void | prim_record_minimal_symbol (const char *name, CORE_ADDR address, enum minimal_symbol_type ms_type, struct objfile *objfile) |
struct minimal_symbol * | prim_record_minimal_symbol_full (const char *name, int name_len, int copy_name, CORE_ADDR address, enum minimal_symbol_type ms_type, int section, struct objfile *objfile) |
struct minimal_symbol * | prim_record_minimal_symbol_and_info (const char *name, CORE_ADDR address, enum minimal_symbol_type ms_type, int section, struct objfile *objfile) |
struct cleanup * | make_cleanup_discard_minimal_symbols (void) |
void | install_minimal_symbols (struct objfile *objfile) |
void | terminate_minimal_symbol_table (struct objfile *objfile) |
void | msymbols_sort (struct objfile *objfile) |
CORE_ADDR | find_solib_trampoline_target (struct frame_info *frame, CORE_ADDR pc) |
Variables |
struct gnu_ifunc_fns * | gnu_ifunc_fns_p = &stub_gnu_ifunc_fns |
Define Documentation
Function Documentation
Prepare to start collecting minimal symbols. This should be called by a symbol reader to initialize the minimal symbol module. Currently, minimal symbol table creation is not reentrant; it relies on global (static) variables in minsyms.c.
Definition at line 861 of file minsyms.c.
Install the minimal symbols that have been collected into the given objfile. After this is called, the cleanup returned by make_cleanup_discard_minimal_symbols should be run in order to clean up global state.
- Parameters:
-
objfile | the objfile from which to get minimal symbols |
Definition at line 1176 of file minsyms.c.
Iterate over all the minimal symbols in the objfile OBJF which match NAME. Both the ordinary and demangled names of each symbol are considered. The caller is responsible for canonicalizing NAME, should that need to be done.
For each matching symbol, CALLBACK is called with the symbol and USER_DATA as arguments.
Definition at line 319 of file minsyms.c.
Like lookup_minimal_symbol, but searches all files and objfiles and returns a bound minimal symbol.
- Parameters:
-
- Returns:
- minimal symbol and its objfile
Definition at line 311 of file minsyms.c.
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 symbols considered will be from that source file (global symbols are still preferred). Returns a pointer to the minimal symbol that matches, or NULL if no match is found.
- Parameters:
-
name | string to look for |
sfile | if supplied, name of a source file |
objf | if supplied, pointer to objfile to lookup in |
Definition at line 298 of file minsyms.c.
Find the minimal symbol named NAME, and return both the minsym struct and its objfile. This only checks the linkage name.
- Parameters:
-
- Returns:
- minimal symbol and its objfile
Definition at line 815 of file minsyms.c.
Backward compatibility: search through the minimal symbol table for a matching PC (no section given).
This is a wrapper that calls lookup_minimal_symbol_by_pc_section with a NULL section argument.
Definition at line 735 of file minsyms.c.
Look through all the current minimal symbol tables and find the first minimal symbol that matches NAME and PC. If OBJF is non-NULL, limit the search to that objfile. Returns a pointer to the minimal symbol that matches, or NULL if no match is found.
Definition at line 405 of file minsyms.c.
Search through the minimal symbol table for each objfile and find the symbol whose address is the largest address that is still less than or equal to PC, and which matches SECTION.
If SECTION is NULL, this uses the result of find_pc_section instead.
The result has a non-NULL 'minsym' member if such a symbol is found, or NULL if PC is not in a suitable range.
Definition at line 713 of file minsyms.c.
Look through all the current minimal symbol tables and find the first minimal symbol that matches NAME and is a solib trampoline. If OBJF is non-NULL, limit the search to that objfile. Returns a pointer to the minimal symbol that matches, or NULL if no match is found.
This function only searches the mangled (linkage) names.
Definition at line 437 of file minsyms.c.
Look through all the current minimal symbol tables and find the first minimal symbol that matches NAME and has text type. If OBJF is non-NULL, limit the search to that objfile. Returns a pointer to the minimal symbol that matches, or NULL if no match is found.
This function only searches the mangled (linkage) names.
Definition at line 353 of file minsyms.c.
Return a cleanup which is used to clean up the global state left over by minimal symbol creation. After calling init_minimal_symbol_collection, a symbol reader should call this function. Then, after all minimal symbols have been read, regardless of whether they are installed or not, the cleanup returned by this function should be run.
Definition at line 1045 of file minsyms.c.
Compute a hash code for the string argument.
Definition at line 102 of file minsyms.c.
Like msymbol_hash, but compute a hash code that is compatible with strcmp_iw.
Definition at line 83 of file minsyms.c.
Sort all the minimal symbols in OBJFILE. This should be only be called after relocating symbols; it ensures that the minimal symbols are properly sorted by address.
Definition at line 1289 of file minsyms.c.
Like prim_record_minimal_symbol_full, but:
- uses strlen to compute NAME_LEN,
- passes COPY_NAME = 0,
- and passes a default SECTION, depending on the type
This variant does not return the new symbol.
Definition at line 874 of file minsyms.c.
Like prim_record_minimal_symbol_full, but:
- uses strlen to compute NAME_LEN,
- passes COPY_NAME = 0.
Definition at line 973 of file minsyms.c.
Record a new minimal symbol. This is the "full" entry point; simpler convenience entry points are also provided below.
This returns a new minimal symbol. It is ok to modify the returned minimal symbol (though generally not necessary). It is not ok, though, to stash the pointer anywhere; as minimal symbols may be moved after creation. The memory for the returned minimal symbol is still owned by the minsyms.c code, and should not be freed.
Arguments are:
- Parameters:
-
NAME | - the symbol's name |
NAME_LEN | - the length of the name |
COPY_NAME | - if true, the minsym code must make a copy of NAME. If false, then NAME must be NUL-terminated, and must have a lifetime that is at least as long as OBJFILE's lifetime. |
ADDRESS | - the address of the symbol |
MS_TYPE | - the type of the symbol |
SECTION | - the symbol's section appropriate obj_section for the minimal symbol. This can be NULL. |
OBJFILE | - the objfile associated with the minimal symbol. |
Definition at line 907 of file minsyms.c.
Create the terminating entry of OBJFILE's minimal symbol table. If OBJFILE->msymbols is zero, allocate a single entry from OBJFILE->objfile_obstack; otherwise, just initialize OBJFILE->msymbols[OBJFILE->minimal_symbol_count].
Definition at line 1268 of file minsyms.c.
Variable Documentation