diff options
author | Yao Qi <yao.qi@linaro.org> | 2017-07-26 14:55:31 +0100 |
---|---|---|
committer | Yao Qi <yao.qi@linaro.org> | 2017-07-26 14:55:31 +0100 |
commit | 27d41eac62a6a1aa803dfcfba2be61431e7b3d13 (patch) | |
tree | caab5f884290aaeda3202b0795abdc7d0ed6f158 /gdb/maint.c | |
parent | ea03d0d3c32b22aeddfeb139a4a515f7e5961347 (diff) | |
download | gdb-27d41eac62a6a1aa803dfcfba2be61431e7b3d13.zip gdb-27d41eac62a6a1aa803dfcfba2be61431e7b3d13.tar.gz gdb-27d41eac62a6a1aa803dfcfba2be61431e7b3d13.tar.bz2 |
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.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/gdb/maint.c b/gdb/maint.c index d95f658..a0d43ec 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."), |