diff options
Diffstat (limited to 'gdb/symfile.h')
-rw-r--r-- | gdb/symfile.h | 54 |
1 files changed, 30 insertions, 24 deletions
diff --git a/gdb/symfile.h b/gdb/symfile.h index 6b6ffc9..44f0c01 100644 --- a/gdb/symfile.h +++ b/gdb/symfile.h @@ -152,22 +152,24 @@ struct quick_symbol_functions /* Forget all cached full file names for OBJFILE. */ void (*forget_cached_source_info) (struct objfile *objfile); - /* Look up the symbol table, in OBJFILE, of a source file named - NAME. If there is no '/' in the name, a match after a '/' in the - symbol table's file name will also work. FULL_PATH is the - absolute file name, and REAL_PATH is the same, run through - gdb_realpath. - - If no such symbol table can be found, returns 0. - - Otherwise, sets *RESULT to the symbol table and returns 1. This - might return 1 and set *RESULT to NULL if the requested file is - an include file that does not have a symtab of its own. */ - int (*lookup_symtab) (struct objfile *objfile, - const char *name, - const char *full_path, - const char *real_path, - struct symtab **result); + /* Expand and iterate over each "partial" symbol table in OBJFILE + where the source file is named NAME. + + If there is no '/' in the name, a match after a '/' in the symbol + table's file name will also work. FULL_PATH is the absolute file + name, and REAL_PATH is the same, run through gdb_realpath. + + If a match is found, the "partial" symbol table is expanded. + Then, this calls iterate_over_some_symtabs (or equivalent) over + all newly-created symbol tables, passing CALLBACK and DATA to it. + The result of this call is returned. */ + int (*map_symtabs_matching_filename) (struct objfile *objfile, + const char *name, + const char *full_path, + const char *real_path, + int (*callback) (struct symtab *, + void *), + void *data); /* Check to see if the symbol is defined in a "partial" symbol table of OBJFILE. KIND should be either GLOBAL_BLOCK or STATIC_BLOCK, @@ -259,9 +261,12 @@ struct quick_symbol_functions Otherwise, if KIND does not match this symbol is skipped. - If even KIND matches, then NAME_MATCHER is called for each symbol defined - in the file. The symbol's "natural" name and DATA are passed to - NAME_MATCHER. + If even KIND matches, then NAME_MATCHER is called for each symbol + defined in the file. The current language, the symbol name and + DATA are passed to NAME_MATCHER. The symbol "natural" name should + be passed to NAME_MATCHER for all languages except Ada, where + the encoded name is passed instead (see la_symbol_name_compare in + struct language_defn for more details on this). If NAME_MATCHER returns zero, then this symbol is skipped. @@ -269,11 +274,12 @@ struct quick_symbol_functions DATA is user data that is passed unmodified to the callback functions. */ - void (*expand_symtabs_matching) (struct objfile *objfile, - int (*file_matcher) (const char *, void *), - int (*name_matcher) (const char *, void *), - enum search_domain kind, - void *data); + void (*expand_symtabs_matching) + (struct objfile *objfile, + int (*file_matcher) (const char *, void *), + int (*name_matcher) (const struct language_defn *, const char *, void *), + enum search_domain kind, + void *data); /* Return the symbol table from OBJFILE that contains PC and SECTION. Return NULL if there is no such symbol table. This |