/* Skipping uninteresting files and functions while stepping.
- Copyright (C) 2011-2018 Free Software Foundation, Inc.
+ Copyright (C) 2011-2019 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
current_uiout->field_string ("file",
e.file ().empty () ? "<none>"
- : e.file ().c_str ()); /* 4 */
+ : e.file ().c_str (),
+ ui_out_style_kind::FILE); /* 4 */
if (e.function_is_regexp ())
current_uiout->field_string ("regexp", "y"); /* 5 */
else
current_uiout->field_string ("function",
e.function ().empty () ? "<none>"
- : e.function ().c_str ()); /* 6 */
+ : e.function ().c_str (),
+ ui_out_style_kind::FUNCTION); /* 6 */
current_uiout->text ("\n");
}
return false;
}
+/* Completer for skip numbers. */
+
+static void
+complete_skip_number (cmd_list_element *cmd,
+ completion_tracker &completer,
+ const char *text, const char *word)
+{
+ size_t word_len = strlen (word);
+
+ for (const skiplist_entry &entry : skiplist_entries)
+ {
+ gdb::unique_xmalloc_ptr<char> name (xstrprintf ("%d", entry.number ()));
+ if (strncmp (word, name.get (), word_len) == 0)
+ completer.add_completion (std::move (name));
+ }
+}
+
void
_initialize_step_skip (void)
{
&skiplist);
set_cmd_completer (c, location_completer);
- add_cmd ("enable", class_breakpoint, skip_enable_command, _("\
+ c = add_cmd ("enable", class_breakpoint, skip_enable_command, _("\
Enable skip entries. You can specify numbers (e.g. \"skip enable 1 3\"), \
ranges (e.g. \"skip enable 4-8\"), or both (e.g. \"skip enable 1 3 4-8\").\n\n\
If you don't specify any numbers or ranges, we'll enable all skip entries.\n\n\
Usage: skip enable [NUMBER | RANGE]..."),
- &skiplist);
+ &skiplist);
+ set_cmd_completer (c, complete_skip_number);
- add_cmd ("disable", class_breakpoint, skip_disable_command, _("\
+ c = add_cmd ("disable", class_breakpoint, skip_disable_command, _("\
Disable skip entries. You can specify numbers (e.g. \"skip disable 1 3\"), \
ranges (e.g. \"skip disable 4-8\"), or both (e.g. \"skip disable 1 3 4-8\").\n\n\
If you don't specify any numbers or ranges, we'll disable all skip entries.\n\n\
Usage: skip disable [NUMBER | RANGE]..."),
- &skiplist);
+ &skiplist);
+ set_cmd_completer (c, complete_skip_number);
- add_cmd ("delete", class_breakpoint, skip_delete_command, _("\
+ c = add_cmd ("delete", class_breakpoint, skip_delete_command, _("\
Delete skip entries. You can specify numbers (e.g. \"skip delete 1 3\"), \
ranges (e.g. \"skip delete 4-8\"), or both (e.g. \"skip delete 1 3 4-8\").\n\n\
If you don't specify any numbers or ranges, we'll delete all skip entries.\n\n\
Usage: skip delete [NUMBER | RANGES]..."),
- &skiplist);
+ &skiplist);
+ set_cmd_completer (c, complete_skip_number);
add_info ("skip", info_skip_command, _("\
-Display the status of skips. You can specify numbers (e.g. \"skip info 1 3\"), \
-ranges (e.g. \"skip info 4-8\"), or both (e.g. \"skip info 1 3 4-8\").\n\n\
+Display the status of skips. You can specify numbers (e.g. \"info skip 1 3\"), \
+ranges (e.g. \"info skip 4-8\"), or both (e.g. \"info skip 1 3 4-8\").\n\n\
If you don't specify any numbers or ranges, we'll show all skips.\n\n\
-Usage: skip info [NUMBER | RANGES]...\n\
-The \"Type\" column indicates one of:\n\
-\tfile - ignored file\n\
-\tfunction - ignored function"));
+Usage: info skip [NUMBER | RANGES]..."));
+ set_cmd_completer (c, complete_skip_number);
add_setshow_boolean_cmd ("skip", class_maintenance,
&debug_skip, _("\