/* Minimal symbol table definitions for GDB.
- Copyright (C) 2011-2017 Free Software Foundation, Inc.
+ Copyright (C) 2011-2018 Free Software Foundation, Inc.
This file is part of GDB.
\f
-/* Return whether MSYMBOL is a function/method. */
+/* Return whether MSYMBOL is a function/method. If FUNC_ADDRESS_P is
+ non-NULL, and the MSYMBOL is a function, then *FUNC_ADDRESS_P is
+ set to the function's address, already resolved if MINSYM points to
+ a function descriptor. */
-bool msymbol_is_text (minimal_symbol *msymbol);
+bool msymbol_is_function (struct objfile *objfile,
+ minimal_symbol *minsym,
+ CORE_ADDR *func_address_p = NULL);
/* Compute a hash code for the string argument. */
requirements. */
#define SYMBOL_HASH_NEXT(hash, c) \
- ((hash) * 67 + tolower ((unsigned char) (c)) - 113)
+ ((hash) * 67 + TOLOWER ((unsigned char) (c)) - 113)
\f
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. */
+ struct and its objfile. */
struct bound_minimal_symbol lookup_minimal_symbol_and_objfile (const char *);
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. */
+ For each matching symbol, CALLBACK is called with the symbol. */
-void iterate_over_minimal_symbols (struct objfile *objf,
- const lookup_name_info &name,
- void (*callback) (struct minimal_symbol *,
- void *),
- void *user_data);
+void iterate_over_minimal_symbols
+ (struct objfile *objf, const lookup_name_info &name,
+ gdb::function_view<void (struct minimal_symbol *)> callback);
/* Compute the upper bound of MINSYM. The upper bound is the last
address thought to be part of the symbol. If the symbol has a