aboutsummaryrefslogtreecommitdiff
path: root/gdb/psymtab.c
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/psymtab.c
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/psymtab.c')
-rw-r--r--gdb/psymtab.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/gdb/psymtab.c b/gdb/psymtab.c
index 592efd7..4ee9dc1 100644
--- a/gdb/psymtab.c
+++ b/gdb/psymtab.c
@@ -1409,6 +1409,7 @@ psym_expand_symtabs_matching
(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)
{
@@ -1451,7 +1452,13 @@ psym_expand_symtabs_matching
}
if (recursively_search_psymtabs (ps, objfile, kind, symbol_matcher, data))
- psymtab_to_symtab (objfile, ps);
+ {
+ struct compunit_symtab *symtab =
+ psymtab_to_symtab (objfile, ps);
+
+ if (expansion_notify != NULL)
+ expansion_notify (symtab, data);
+ }
}
}