From: Tom Tromey Date: Wed, 4 Sep 2024 16:32:00 +0000 (-0600) Subject: Clear Ada symbol cache X-Git-Tag: gdb-16-branchpoint~984 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=6a4eb277b788df94f8b8e6f3e38d6a7c97c2452f;p=thirdparty%2Fbinutils-gdb.git Clear Ada symbol cache This patch changes "maint flush symbol-cache" to also flush the Ada-specific symbol cache. This can be helpful when working on the Ada code. Approved-By: Tom de Vries --- diff --git a/gdb/ada-lang.c b/gdb/ada-lang.c index d77fa3c54b8..51112a1ab02 100644 --- a/gdb/ada-lang.c +++ b/gdb/ada-lang.c @@ -4690,9 +4690,9 @@ make_array_descriptor (struct type *type, struct value *arr) even in this case, some expensive name-based symbol searches are still sometimes necessary - to find an XVZ variable, mostly. */ -/* Clear all entries from the symbol cache. */ +/* See ada-lang.h. */ -static void +void ada_clear_symbol_cache (program_space *pspace) { ada_pspace_data_handle.clear (pspace); diff --git a/gdb/ada-lang.h b/gdb/ada-lang.h index 77193ef78b4..050d2980203 100644 --- a/gdb/ada-lang.h +++ b/gdb/ada-lang.h @@ -433,4 +433,8 @@ extern block_symbol ada_resolve_variable (struct symbol *sym, extern struct type *ada_index_type (struct type *type, int n, const char *name); +/* Clear the Ada symbol cache. */ + +extern void ada_clear_symbol_cache (program_space *pspace); + #endif diff --git a/gdb/symtab.c b/gdb/symtab.c index ce5e2520bd1..b955cc873e2 100644 --- a/gdb/symtab.c +++ b/gdb/symtab.c @@ -1563,6 +1563,7 @@ symbol_cache_mark_not_found (struct block_symbol_cache *bsc, static void symbol_cache_flush (struct program_space *pspace) { + ada_clear_symbol_cache (pspace); struct symbol_cache *cache = symbol_cache_key.get (pspace); int pass;