summaryrefslogtreecommitdiff
path: root/gdb/maint.c
diff options
context:
space:
mode:
authorYao Qi <yao.qi@linaro.org>2017-07-26 14:55:31 +0100
committerYao Qi <yao.qi@linaro.org>2017-07-26 14:55:31 +0100
commit27d41eac62a6a1aa803dfcfba2be61431e7b3d13 (patch)
treecaab5f884290aaeda3202b0795abdc7d0ed6f158 /gdb/maint.c
parentea03d0d3c32b22aeddfeb139a4a515f7e5961347 (diff)
Add "maint check xml-descriptions" to test builtin xml target descriptions
Now, GDB is able to dynamically create i386-linux target descriptions from features, instead of using pre-generated target descriptions. These pre-generated target descriptions are no longer used by GDB (note that they are still used by GDBserver). This patch add a new maint command "maint check xml-descriptions" to test dynamically generated tdesc are identical to these generated from xml files. gdb: 2017-07-26 Yao Qi <yao.qi@linaro.org> * cli/cli-cmds.c (maintenancechecklist): New variable. * gdbcmd.h (maintenancechecklist): Declare it. * i386-linux-tdep.c (_initialize_i386_linux_tdep) [GDB_SELF_TEST]: Call i386_linux_read_description with different masks. * maint.c (maintenance_check_command): New function. (_initialize_maint_cmds): Call add_prefix_cmd. * target-descriptions.c (tdesc_reg): override operator != and ==. (tdesc_type): Likewise. (tdesc_feature): Likewise. (target_desc): Likewise. [GDB_SELF_TEST] (selftests::record_xml_tdesc): New function. (maintenance_check_xml_descriptions): New function. (_initialize_target_descriptions) Add command "xml-descriptions". * target-descriptions.h (selftests::record_xml_tdesc): Declare. gdb/testsuite: 2017-07-26 Yao Qi <yao.qi@linaro.org> * gdb.gdb/unittest.exp: Invoke command "maintenance check xml-descriptions". gdb/doc: 2017-07-26 Yao Qi <yao.qi@linaro.org> * gdb.texinfo (Maintenance Commands): Document command "maint check xml-descriptions".
Diffstat (limited to 'gdb/maint.c')
-rw-r--r--gdb/maint.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/gdb/maint.c b/gdb/maint.c
index d95f658684..a0d43ec7c0 100644
--- a/gdb/maint.c
+++ b/gdb/maint.c
@@ -178,6 +178,19 @@ maintenance_info_command (char *arg, int from_tty)
gdb_stdout);
}
+/* The "maintenance check" command is defined as a prefix, with
+ allow_unknown 0. Therefore, its own definition is called only for
+ "maintenance check" with no args. */
+
+static void
+maintenance_check_command (char *arg, int from_tty)
+{
+ printf_unfiltered (_("\"maintenance check\" must be followed "
+ "by the name of a check command.\n"));
+ help_list (maintenancechecklist, "maintenance check ", all_commands,
+ gdb_stdout);
+}
+
/* Mini tokenizing lexer for 'maint info sections' command. */
static int
@@ -1104,6 +1117,11 @@ Print the internal architecture configuration.\n\
Takes an optional file parameter."),
&maintenanceprintlist);
+ add_prefix_cmd ("check", class_maintenance, maintenance_check_command, _("\
+Commands for checking internal gdb state."),
+ &maintenancechecklist, "maintenance check ", 0,
+ &maintenancelist);
+
add_cmd ("translate-address", class_maintenance,
maintenance_translate_address,
_("Translate a section name and address to a symbol."),