aboutsummaryrefslogtreecommitdiff
path: root/gdb
diff options
context:
space:
mode:
Diffstat (limited to 'gdb')
-rw-r--r--gdb/ChangeLog8
-rw-r--r--gdb/cli/cli-decode.c2
-rw-r--r--gdb/cli/cli-setshow.c38
-rw-r--r--gdb/cli/cli-setshow.h3
-rw-r--r--gdb/command.h2
-rw-r--r--gdb/dwarf2/index-cache.c2
-rw-r--r--gdb/testsuite/ChangeLog4
-rw-r--r--gdb/testsuite/gdb.base/default.exp4
8 files changed, 40 insertions, 23 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index d6204a2..80c027d 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,5 +1,13 @@
2020-05-15 Philippe Waroquiers <philippe.waroquiers@skynet.be>
+ * cli/cli-setshow.h (cmd_show_list): Remove prefix argument.
+ * cli/cli-decode.c (do_show_prefix_cmd): Likewise.
+ * command.h (cmd_show_list): Likewise.
+ * dwarf2/index-cache.c (show_index_cache_command): Likewise.
+ * cli/cli-setshow.c (cmd_show_list): Use the prefix to produce the output. Skip aliases.
+
+2020-05-15 Philippe Waroquiers <philippe.waroquiers@skynet.be>
+
* unittests/command-def-selftests.c (traverse_command_structure):
Verify all commands of a list have the same prefix command and
that only the top cmdlist commands have a null prefix.
diff --git a/gdb/cli/cli-decode.c b/gdb/cli/cli-decode.c
index be36eb6..c37dfaf 100644
--- a/gdb/cli/cli-decode.c
+++ b/gdb/cli/cli-decode.c
@@ -428,7 +428,7 @@ add_basic_prefix_cmd (const char *name, enum command_class theclass,
static void
do_show_prefix_cmd (const char *args, int from_tty, struct cmd_list_element *c)
{
- cmd_show_list (*c->prefixlist, from_tty, "");
+ cmd_show_list (*c->prefixlist, from_tty);
}
/* See command.h. */
diff --git a/gdb/cli/cli-setshow.c b/gdb/cli/cli-setshow.c
index 2a2f905..19a5565 100644
--- a/gdb/cli/cli-setshow.c
+++ b/gdb/cli/cli-setshow.c
@@ -733,39 +733,45 @@ do_show_command (const char *arg, int from_tty, struct cmd_list_element *c)
/* Show all the settings in a list of show commands. */
void
-cmd_show_list (struct cmd_list_element *list, int from_tty, const char *prefix)
+cmd_show_list (struct cmd_list_element *list, int from_tty)
{
struct ui_out *uiout = current_uiout;
ui_out_emit_tuple tuple_emitter (uiout, "showlist");
for (; list != NULL; list = list->next)
{
+ /* We skip show command aliases to avoid showing duplicated values. */
+
/* If we find a prefix, run its list, prefixing our output by its
prefix (with "show " skipped). */
- if (list->prefixlist && !list->abbrev_flag)
+ if (list->prefixlist && list->cmd_pointer == nullptr)
{
ui_out_emit_tuple optionlist_emitter (uiout, "optionlist");
const char *new_prefix = strstr (list->prefixname, "show ") + 5;
if (uiout->is_mi_like_p ())
uiout->field_string ("prefix", new_prefix);
- cmd_show_list (*list->prefixlist, from_tty, new_prefix);
+ cmd_show_list (*list->prefixlist, from_tty);
}
- else
+ else if (list->theclass != no_set_class && list->cmd_pointer == nullptr)
{
- if (list->theclass != no_set_class)
- {
- ui_out_emit_tuple option_emitter (uiout, "option");
-
- uiout->text (prefix);
- uiout->field_string ("name", list->name);
- uiout->text (": ");
- if (list->type == show_cmd)
- do_show_command (NULL, from_tty, list);
- else
- cmd_func (list, NULL, from_tty);
- }
+ ui_out_emit_tuple option_emitter (uiout, "option");
+
+ {
+ /* If we find a prefix, output it (with "show " skipped). */
+ const char *prefixname
+ = (list->prefix == nullptr ? ""
+ : strstr (list->prefix->prefixname, "show ") + 5);
+ uiout->text (prefixname);
+ }
+ uiout->field_string ("name", list->name);
+ uiout->text (": ");
+ if (list->type == show_cmd)
+ do_show_command (NULL, from_tty, list);
+ else
+ cmd_func (list, NULL, from_tty);
}
}
}
+
diff --git a/gdb/cli/cli-setshow.h b/gdb/cli/cli-setshow.h
index 9f0492b..83e4984 100644
--- a/gdb/cli/cli-setshow.h
+++ b/gdb/cli/cli-setshow.h
@@ -60,7 +60,6 @@ extern void do_show_command (const char *arg, int from_tty,
/* Get a string version of C's current value. */
extern std::string get_setshow_command_value_string (const cmd_list_element *c);
-extern void cmd_show_list (struct cmd_list_element *list, int from_tty,
- const char *prefix);
+extern void cmd_show_list (struct cmd_list_element *list, int from_tty);
#endif /* CLI_CLI_SETSHOW_H */
diff --git a/gdb/command.h b/gdb/command.h
index 81c35c9..0a1706c 100644
--- a/gdb/command.h
+++ b/gdb/command.h
@@ -464,7 +464,7 @@ extern void
/* Do a "show" command for each thing on a command list. */
-extern void cmd_show_list (struct cmd_list_element *, int, const char *);
+extern void cmd_show_list (struct cmd_list_element *, int);
/* Used everywhere whenever at least one parameter is required and
none is specified. */
diff --git a/gdb/dwarf2/index-cache.c b/gdb/dwarf2/index-cache.c
index 23e938b..76e7ce6 100644
--- a/gdb/dwarf2/index-cache.c
+++ b/gdb/dwarf2/index-cache.c
@@ -259,7 +259,7 @@ show_index_cache_command (const char *arg, int from_tty)
auto restore_flag = make_scoped_restore (&in_show_index_cache_command, true);
/* Call all "show index-cache" subcommands. */
- cmd_show_list (show_index_cache_prefix_list, from_tty, "");
+ cmd_show_list (show_index_cache_prefix_list, from_tty);
printf_unfiltered ("\n");
printf_unfiltered
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index 820af44..bff0ad0 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,5 +1,9 @@
2020-05-15 Philippe Waroquiers <philippe.waroquiers@skynet.be>
+ * gdb.base/default.exp: Update output following fixes.
+
+2020-05-15 Philippe Waroquiers <philippe.waroquiers@skynet.be>
+
* gdb.base/alias.exp: Test aliases starting with a prefix of
another alias.
diff --git a/gdb/testsuite/gdb.base/default.exp b/gdb/testsuite/gdb.base/default.exp
index 95b92c4..c34bb9a 100644
--- a/gdb/testsuite/gdb.base/default.exp
+++ b/gdb/testsuite/gdb.base/default.exp
@@ -559,7 +559,7 @@ gdb_test "show args" "Argument list to give program being debugged when it is st
# test show check abbreviations
foreach x {"c" "ch" "check"} {
- gdb_test "show $x" "range: *Range checking is \"auto; currently off\".(\[^\r\n\]*\[\r\n\])+type: *Strict type checking is on\..*" \
+ gdb_test "show $x" "check range: *Range checking is \"auto; currently off\".(\[^\r\n\]*\[\r\n\])+check type: *Strict type checking is on\..*" \
"show check \"$x\" abbreviation"
}
@@ -645,7 +645,7 @@ gdb_test "show history save" "Saving of the history record on exit is on."
#test show history size
gdb_test "show history size" "The size of the command history is.*"
#test show history
-gdb_test "show history" "expansion: *History expansion on command input is o(\[^\r\n\]*\[\r\n\])+filename: *The filename in which to record the command history is.*.gdb_history(\[^\r\n\]*\[\r\n\])+save: *Saving of the history record on exit is o(\[^\r\n\]*\[\r\n\])+size: * The size of the command history is.*"
+gdb_test "show history" "history expansion: *History expansion on command input is o(\[^\r\n\]*\[\r\n\])+history filename: *The filename in which to record the command history is.*.gdb_history(\[^\r\n\]*\[\r\n\])+history save: *Saving of the history record on exit is o(\[^\r\n\]*\[\r\n\])+history size: * The size of the command history is.*"
#test show language
gdb_test "show language" "The current source language is \"auto; currently c\"."
#test show listsize