aboutsummaryrefslogtreecommitdiff
path: root/gdb/symfile.h
diff options
context:
space:
mode:
authorGary Benson <gbenson@redhat.com>2015-01-31 14:45:26 -0800
committerDoug Evans <xdje42@gmail.com>2015-01-31 14:45:26 -0800
commit276d885b572b12221f639641846ab94ef9582995 (patch)
tree979dd34e3f0f20d27e1bf1b7227b25bde3b17ff1 /gdb/symfile.h
parent5dd31d7995882a43fab9b35b11775499126d7bd8 (diff)
downloadgdb-276d885b572b12221f639641846ab94ef9582995.zip
gdb-276d885b572b12221f639641846ab94ef9582995.tar.gz
gdb-276d885b572b12221f639641846ab94ef9582995.tar.bz2
new callback parameter expansion_notify for expand_symtabs_matching
This commit adds a new callback parameter, "expansion_notify", to the top-level expand_symtabs_matching function and to all the vectorized functions it defers to. If expansion_notify is non-NULL, it will be called every time a symbol table is expanded. gdb/ChangeLog: * symfile.h (expand_symtabs_exp_notify_ftype): New typedef. (struct quick_symbol_functions) <expand_symtabs_matching>: New argument expansion_notify. All uses updated. (expand_symtabs_matching): New argument expansion_notify. All uses updated. * symfile-debug.c (debug_qf_expand_symtabs_matching): Also print expansion notify. * symtab.c (expand_symtabs_matching_via_partial): Call expansion_notify whenever a partial symbol table is expanded. * dwarf2read.c (dw2_expand_symtabs_matching): Call expansion_notify whenever a symbol table is instantiated.
Diffstat (limited to 'gdb/symfile.h')
-rw-r--r--gdb/symfile.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/gdb/symfile.h b/gdb/symfile.h
index 380bd0e..d5ae4ad 100644
--- a/gdb/symfile.h
+++ b/gdb/symfile.h
@@ -137,6 +137,12 @@ typedef int (expand_symtabs_file_matcher_ftype) (const char *filename,
typedef int (expand_symtabs_symbol_matcher_ftype) (const char *name,
void *data);
+/* Callback for quick_symbol_functions->expand_symtabs_matching
+ to be called after a symtab has been expanded. */
+
+typedef void (expand_symtabs_exp_notify_ftype) \
+ (struct compunit_symtab *symtab, void *data);
+
/* The "quick" symbol functions exist so that symbol readers can
avoiding an initial read of all the symbols. For example, symbol
readers might choose to use the "partial symbol table" utilities,
@@ -282,6 +288,7 @@ struct quick_symbol_functions
(struct objfile *objfile,
expand_symtabs_file_matcher_ftype *file_matcher,
expand_symtabs_symbol_matcher_ftype *symbol_matcher,
+ expand_symtabs_exp_notify_ftype *expansion_notify,
enum search_domain kind,
void *data);
@@ -569,6 +576,7 @@ extern struct cleanup *increment_reading_symtab (void);
void expand_symtabs_matching (expand_symtabs_file_matcher_ftype *,
expand_symtabs_symbol_matcher_ftype *,
+ expand_symtabs_exp_notify_ftype *,
enum search_domain kind, void *data);
void map_symbol_filenames (symbol_filename_ftype *fun, void *data,