[binutils-gdb] Clear Ada symbol cache

Tom Tromey tromey@sourceware.org
Fri Sep 6 17:13:06 GMT 2024


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=6a4eb277b788df94f8b8e6f3e38d6a7c97c2452f

commit 6a4eb277b788df94f8b8e6f3e38d6a7c97c2452f
Author: Tom Tromey <tromey@adacore.com>
Date:   Wed Sep 4 10:32:00 2024 -0600

    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 <tdevries@suse.de>

Diff:
---
 gdb/ada-lang.c | 4 ++--
 gdb/ada-lang.h | 4 ++++
 gdb/symtab.c   | 1 +
 3 files changed, 7 insertions(+), 2 deletions(-)

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;


More information about the Gdb-cvs mailing list