+2020-12-13 Andrew Burgess <andrew.burgess@embecosm.com>
+
+ * NEWS: Mention new commands, and that the old commands are now
+ deprecated.
+ * cli/cli-cmds.c (maintenanceflushlist): Define.
+ * cli/cli-cmds.h (maintenanceflushlist): Declare.
+ * maint.c (_initialize_maint_cmds): Initialise
+ maintenanceflushlist.
+ * regcache.c: Add 'cli/cli-cmds.h' include.
+ (reg_flush_command): Add header comment.
+ (_initialize_regcache): Create new 'maint flush register-cache'
+ command, make 'flushregs' an alias.
+ * symtab.c: Add 'cli/cli-cmds.h' include.
+ (_initialize_symtab): Create new 'maint flush symbol-cache'
+ command, make old command an alias.
+
2020-12-11 Andrew Burgess <andrew.burgess@embecosm.com>
* cli/cli-decode.c (deprecated_cmd_warning): Ignore the prefix
show debug event-loop
Control the display of debug output about GDB's event loop.
+maintenance flush symbol-cache
+maintenance flush register-cache
+ These new commands are equivalent to the already existing commands
+ 'maintenance flush-symbol-cache' and 'flushregs' respectively.
+
* Changed commands
break [PROBE_MODIFIER] [LOCATION] [thread THREADNUM]
GDB into defining the condition even when COND is invalid for all the
current locations of breakpoint N.
+flushregs
+maintenance flush-symbol-cache
+ These commands are deprecated in favor of the new commands
+ 'maintenance flush register-cache' and 'maintenance flush
+ symbol-cache' respectively.
+
*** Changes in GDB 10
* There are new feature names for ARC targets: "org.gnu.gdb.arc.core"
struct cmd_list_element *maintenancechecklist;
+/* Chain containing all defined "maintenance flush" subcommands. */
+
+struct cmd_list_element *maintenanceflushlist;
+
struct cmd_list_element *setprintlist;
struct cmd_list_element *showprintlist;
extern struct cmd_list_element *maintenanceprintlist;
+/* Chain containing all defined "maintenance flush" subcommands. */
+
+extern struct cmd_list_element *maintenanceflushlist;
+
extern struct cmd_list_element *setprintlist;
extern struct cmd_list_element *showprintlist;
+2020-12-13 Andrew Burgess <andrew.burgess@embecosm.com>
+
+ * gdb.texinfo (Symbols): Document 'maint flush symbol-cache'.
+ (Maintenance Commands): Document 'maint flush register-cache'.
+
2020-12-04 Bernd Edlinger <bernd.edlinger@hotmail.de>
* Makefile.in: Delete GDBvn.texi and version.subst only in
Print symbol cache usage statistics.
This helps determine how well the cache is being utilized.
+@kindex maint flush symbol-cache
@kindex maint flush-symbol-cache
@cindex symbol cache, flushing
-@item maint flush-symbol-cache
-Flush the contents of the symbol cache, all entries are removed.
-This command is useful when debugging the symbol cache.
-It is also useful when collecting performance data.
+@item maint flush symbol-cache
+@itemx maint flush-symbol-cache
+Flush the contents of the symbol cache, all entries are removed. This
+command is useful when debugging the symbol cache. It is also useful
+when collecting performance data. The command @code{maint
+flush-symbol-cache} is deprecated in favor of @code{maint flush
+symbol-cache}..
@end table
restore internal
@end smallexample
+@kindex maint flush register-cache
@kindex flushregs
-@item flushregs
-This command forces @value{GDBN} to flush its internal register cache.
+@cindex register cache, flushing
+@item maint flush register-cache
+@itemx flushregs
+Flush the contents of the register cache and as a consequence the
+frame cache. This command is useful when debugging issues related to
+register fetching, or frame unwinding. The command @code{flushregs}
+is deprecated in favor of @code{maint flush register-cache}.
@kindex maint print objfiles
@cindex info for known object files
&maintenanceprintlist, "maintenance print ", 0,
&maintenancelist);
+ add_basic_prefix_cmd ("flush", class_maintenance,
+ _("Maintenance command for flushing GDB internal caches."),
+ &maintenanceflushlist, "maintenance flush ", 0,
+ &maintenancelist);
+
add_basic_prefix_cmd ("set", class_maintenance, _("\
Set GDB internal variables used by the GDB maintainer.\n\
Configure variables internal to GDB that aid in GDB's maintenance"),
#include "observable.h"
#include "regset.h"
#include <unordered_map>
+#include "cli/cli-cmds.h"
/*
* DATA STRUCTURE
fprintf_unfiltered (gdb_stdlog, "\n");
}
+/* Implement 'maint flush register-cache' command. */
+
static void
reg_flush_command (const char *command, int from_tty)
{
void
_initialize_regcache ()
{
+ struct cmd_list_element *c;
+
regcache_descr_handle
= gdbarch_data_register_post_init (init_regcache_descr);
gdb::observers::target_changed.attach (regcache_observer_target_changed);
gdb::observers::thread_ptid_changed.attach (regcache_thread_ptid_changed);
- add_com ("flushregs", class_maintenance, reg_flush_command,
- _("Force gdb to flush its register cache (maintainer command)."));
+ add_cmd ("register-cache", class_maintenance, reg_flush_command,
+ _("Force gdb to flush its register and frame cache."),
+ &maintenanceflushlist);
+ c = add_com_alias ("flushregs", "maintenance flush register-cache",
+ class_maintenance, 0);
+ deprecate_cmd (c, "maintenance flush register-cache");
#if GDB_SELF_TEST
selftests::register_test ("get_thread_arch_aspace_regcache",
#include "addrmap.h"
#include "cli/cli-utils.h"
#include "cli/cli-style.h"
+#include "cli/cli-cmds.h"
#include "fnmatch.h"
#include "hashtab.h"
#include "typeprint.h"
_("Print symbol cache statistics for each program space."),
&maintenanceprintlist);
- add_cmd ("flush-symbol-cache", class_maintenance,
+ add_cmd ("symbol-cache", class_maintenance,
maintenance_flush_symbol_cache,
_("Flush the symbol cache for each program space."),
- &maintenancelist);
+ &maintenanceflushlist);
+ c = add_alias_cmd ("flush-symbol-cache", "flush symbol-cache",
+ class_maintenance, 0, &maintenancelist);
+ deprecate_cmd (c, "maintenancelist flush symbol-cache");
gdb::observers::executable_changed.attach (symtab_observer_executable_changed);
gdb::observers::new_objfile.attach (symtab_new_objfile_observer);
+2020-12-13 Andrew Burgess <andrew.burgess@embecosm.com>
+
+ * gdb.base/c-linkage-name.exp: Update to use new 'maint flush ...'
+ commands.
+ * gdb.base/killed-outside.exp: Likewise.
+ * gdb.opt/inline-bt.exp: Likewise.
+ * gdb.perf/gmonster-null-lookup.py: Likewise.
+ * gdb.perf/gmonster-print-cerr.py: Likewise.
+ * gdb.perf/gmonster-ptype-string.py: Likewise.
+ * gdb.python/py-unwind.exp: Likewise.
+
2020-12-11 Andrew Burgess <andrew.burgess@embecosm.com>
* gdb.base/commands.exp: Update expected results.
# Flush the symbol cache to prevent the lookup to return the same as before.
-gdb_test "maint flush-symbol-cache"
+gdb_test "maint flush symbol-cache"
# Try to print MUNDANE using its linkage name again, after partial
# symtab expansion.
# other commands would trigger.
with_test_prefix "registers" {
test {
- gdb_test "flushregs" ".*"
+ gdb_test "maint flush register-cache" ".*"
gdb_test "info threads" ".*"
}
}
# function.
gdb_test_no_output "set backtrace limit 2"
# Force flushing the frame cache.
-gdb_test "flushregs" "Register cache flushed."
+gdb_test "maint flush register-cache" "Register cache flushed."
gdb_test "up" "#1 .*func1.*" "up from bar (4)"
gdb_test "info frame" ".*in func1.*" "info frame still works"
# Verify the user visible limit works as expected.
utils.safe_execute("mt expand-symtabs")
iteration = 5
while iteration > 0:
- utils.safe_execute("mt flush-symbol-cache")
+ utils.safe_execute("mt flush symbol-cache")
func = lambda: utils.safe_execute("p symbol_not_found")
self.measure.measure(func, run)
iteration -= 1
utils.runto_main()
iteration = 5
while iteration > 0:
- utils.safe_execute("mt flush-symbol-cache")
+ utils.safe_execute("mt flush symbol-cache")
func = lambda: utils.safe_execute("print gm_std::cerr")
self.measure.measure(func, run)
iteration -= 1
utils.safe_execute("mt expand-symtabs")
iteration = 5
while iteration > 0:
- utils.safe_execute("mt flush-symbol-cache")
+ utils.safe_execute("mt flush symbol-cache")
func1 = lambda: utils.safe_execute("ptype hello")
func = lambda: utils.run_n_times(2, func1)
self.measure.measure(func, run)
}
# Check that the Python unwinder frames can be flushed / released.
-gdb_test "flushregs" "Register cache flushed\\." "flush frames"
+gdb_test "maint flush register-cache" "Register cache flushed\\." "flush frames"