aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Tromey <tromey@adacore.com>2024-09-04 10:32:00 -0600
committerTom Tromey <tromey@adacore.com>2024-09-06 11:08:41 -0600
commit6a4eb277b788df94f8b8e6f3e38d6a7c97c2452f (patch)
tree1c0f82cc28cca70ad76c1a25c0a18367c859c017
parentd767b870c4f1ba74e5ba6753f1299df3edeefab2 (diff)
downloadgdb-6a4eb277b788df94f8b8e6f3e38d6a7c97c2452f.zip
gdb-6a4eb277b788df94f8b8e6f3e38d6a7c97c2452f.tar.gz
gdb-6a4eb277b788df94f8b8e6f3e38d6a7c97c2452f.tar.bz2
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>
-rw-r--r--gdb/ada-lang.c4
-rw-r--r--gdb/ada-lang.h4
-rw-r--r--gdb/symtab.c1
3 files changed, 7 insertions, 2 deletions
diff --git a/gdb/ada-lang.c b/gdb/ada-lang.c
index d77fa3c..51112a1 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 77193ef..050d298 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 ce5e252..b955cc8 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;