@cindex automatic symbol index cache
It is possible for @value{GDBN} to automatically save a copy of this index in a
cache on disk and retrieve it from there when loading the same binary in the
-future. This feature can be turned on with @kbd{set index-cache on}. The
-following commands can be used to tweak the behavior of the index cache.
+future. This feature can be turned on with @kbd{set index-cache enabled on}.
+The following commands can be used to tweak the behavior of the index cache.
@table @code
@kindex set index-cache
-@item set index-cache on
-@itemx set index-cache off
+@item set index-cache enabled on
+@itemx set index-cache enabled off
Enable or disable the use of the symbol index cache.
@item set index-cache directory @var{directory}
#include "build-id.h"
#include "cli/cli-cmds.h"
+#include "cli/cli-decode.h"
#include "command.h"
#include "gdbsupport/scoped_mmap.h"
#include "gdbsupport/pathstuff.h"
global_index_cache.enabled () ? _("enabled") : _("disabled"));
}
-/* "set index-cache on" handler. */
+/* "set/show index-cache enabled" set callback. */
static void
-set_index_cache_on_command (const char *arg, int from_tty)
+set_index_cache_enabled_command (bool value)
{
- global_index_cache.enable ();
+ if (value)
+ global_index_cache.enable ();
+ else
+ global_index_cache.disable ();
+}
+
+/* "set/show index-cache enabled" get callback. */
+
+static bool
+get_index_cache_enabled_command ()
+{
+ return global_index_cache.enabled ();
}
-/* "set index-cache off" handler. */
+/* "set/show index-cache enabled" show callback. */
static void
-set_index_cache_off_command (const char *arg, int from_tty)
+show_index_cache_enabled_command (ui_file *stream, int from_tty,
+ cmd_list_element *cmd, const char *value)
{
- global_index_cache.disable ();
+ fprintf_filtered (stream, _("The index cache is %s.\n"), value);
}
/* "set index-cache directory" handler. */
_("Show index-cache options."), &show_index_cache_prefix_list,
false, &showlist);
+ /* set/show index-cache enabled */
+ set_show_commands setshow_index_cache_enabled_cmds
+ = add_setshow_boolean_cmd ("enabled", class_files,
+ _("Enable the index cache."),
+ _("Show whether the index cache is enabled."),
+ _("help doc"),
+ set_index_cache_enabled_command,
+ get_index_cache_enabled_command,
+ show_index_cache_enabled_command,
+ &set_index_cache_prefix_list,
+ &show_index_cache_prefix_list);
+
/* set index-cache on */
- add_cmd ("on", class_files, set_index_cache_on_command,
- _("Enable the index cache."), &set_index_cache_prefix_list);
+ cmd_list_element *set_index_cache_on_cmd
+ = add_alias_cmd ("on", setshow_index_cache_enabled_cmds.set, class_files,
+ false, &set_index_cache_prefix_list);
+ deprecate_cmd (set_index_cache_on_cmd, "set index-cache enabled on");
+ set_index_cache_on_cmd->default_args = "on";
/* set index-cache off */
- add_cmd ("off", class_files, set_index_cache_off_command,
- _("Disable the index cache."), &set_index_cache_prefix_list);
+ cmd_list_element *set_index_cache_off_cmd
+ = add_alias_cmd ("off", setshow_index_cache_enabled_cmds.set, class_files,
+ false, &set_index_cache_prefix_list);
+ deprecate_cmd (set_index_cache_off_cmd, "set index-cache enabled off");
+ set_index_cache_off_cmd->default_args = "off";
/* set index-cache directory */
add_setshow_filename_cmd ("directory", class_files, &index_cache_directory,
save_vars { GDBFLAGS } {
set GDBFLAGS "$GDBFLAGS -iex \"set index-cache directory $cache_dir\""
- set GDBFLAGS "$GDBFLAGS -iex \"set index-cache $cache_enabled\""
+ set GDBFLAGS "$GDBFLAGS -iex \"set index-cache enabled $cache_enabled\""
clean_restart ${testfile}
# Check that the index cache is disabled by default.
gdb_test \
- "show index-cache" \
- " is currently disabled." \
+ "show index-cache enabled" \
+ "The index cache is off." \
"index-cache is disabled by default"
- # Test that we can enable it and "show index-cache" reflects that.
- gdb_test_no_output "set index-cache on" "enable index cache"
+ # Test that we can enable it and "show index-cache enabled" reflects that.
+ gdb_test_no_output "set index-cache enabled on" "enable index cache"
gdb_test \
- "show index-cache" \
- " is currently enabled." \
+ "show index-cache enabled" \
+ "The index cache is on." \
"index-cache is now enabled"
+ with_test_prefix "deprecated commands" {
+ gdb_test "set index-cache off" ".*is deprecated.*" "disable index cache"
+ gdb_test \
+ "show index-cache enabled" \
+ "The index cache is off." \
+ "index-cache is now disabled"
+ gdb_test "set index-cache on" ".*is deprecated.*" "enable index cache"
+ gdb_test \
+ "show index-cache enabled" \
+ "The index cache is on." \
+ "index-cache is now enabled"
+ }
+
# Test the "set/show index-cache directory" commands.
gdb_test "set index-cache directory" "Argument required.*" "set index-cache directory without arg"
gdb_test_no_output "set index-cache directory /tmp" "change the index cache directory"
gdb_test_no_output "set index-cache directory $cache_dir" \
"set index-cache directory"
- gdb_test_no_output "set index-cache on"
+ gdb_test_no_output "set index-cache enabled on"
gdb_test "file $binfile" "Reading symbols from .*" "file"
}
if { $method == "standard" } {
gdb_test "file $binfile" "Reading symbols from .*" "file"
} elseif { $method == "index" } {
- gdb_test_no_output "set index-cache on"
+ gdb_test_no_output "set index-cache enabled on"
gdb_test "file $binfile" "Reading symbols from .*" "file index"
- gdb_test_no_output "set index-cache off"
+ gdb_test_no_output "set index-cache enabled off"
} elseif { $method == "readnow" } {
gdb_test "file -readnow $binfile" \
"Reading symbols from .*Expanding full symbols from .*" \