diff options
author | Gary Benson <gbenson@redhat.com> | 2015-01-31 14:45:26 -0800 |
---|---|---|
committer | Doug Evans <xdje42@gmail.com> | 2015-01-31 14:45:26 -0800 |
commit | 276d885b572b12221f639641846ab94ef9582995 (patch) | |
tree | 979dd34e3f0f20d27e1bf1b7227b25bde3b17ff1 /gdb/psymtab.c | |
parent | 5dd31d7995882a43fab9b35b11775499126d7bd8 (diff) | |
download | gdb-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.c | 9 |
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); + } } } |