[binutils-gdb] gdb: aliases for some skip related commands
Andrew Burgess
aburgess@sourceware.org
Wed Feb 25 11:30:26 GMT 2026
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=9961a4b4671970260c2ccd4457b73eddde0f522a
commit 9961a4b4671970260c2ccd4457b73eddde0f522a
Author: Andrew Burgess <aburgess@redhat.com>
Date: Tue Feb 10 15:14:09 2026 +0000
gdb: aliases for some skip related commands
Skips are created using 'skip', 'skip file', or 'skip function', then
managed with 'skip enable', 'skip disable', and 'skip delete'.
This is slightly different to other things, for example breakpoint,
where we have a command to create the thing, e.g. 'break', but then we
have 'enable breakpoints', 'disable breakpoints', and 'delete
breakpoints' to manage the thing.
If you tab-complete on any of the 'enable', 'disable', or 'delete'
prefix commands you'll find these are used to manage a whole bunch of
different types of thing.
When I started playing with skips, my instinct, given the existing
patterns in GDB, was to try 'enable skip', 'disable skip', and 'delete
skip', and it surprised me that these didn't work.
But notice we do have 'info skip' rather than 'skip info'. So the
"normal" pattern does apply in some cases.
In this commit I propose that we create aliases 'enable skip',
'disable skip', and 'delete skip' which just alias back to the
existing commands. We cannot delete the existing commands for fear of
breaking existing user scripts.
Reviewed-By: Eli Zaretskii <eliz@gnu.org>
Approved-By: Tom Tromey <tom@tromey.com>
Diff:
---
gdb/NEWS | 6 ++++++
gdb/doc/gdb.texinfo | 6 ++++++
gdb/skip.c | 3 +++
gdb/testsuite/gdb.base/skip.exp | 21 ++++++++++++++++++++-
4 files changed, 35 insertions(+), 1 deletion(-)
diff --git a/gdb/NEWS b/gdb/NEWS
index 0ab0323aafa..d70147144e4 100644
--- a/gdb/NEWS
+++ b/gdb/NEWS
@@ -108,6 +108,12 @@ info proc environ
Print the initial environment variables of the specified process.
Supported on Linux.
+delete skip
+enable skip
+disable skip
+ These are new aliases for 'skip delete', 'skip enable', and 'skip
+ disable' respectively.
+
* Changed commands
maintenance info program-spaces
diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo
index 83cf2e7ccea..fd7fc7533c6 100644
--- a/gdb/doc/gdb.texinfo
+++ b/gdb/doc/gdb.texinfo
@@ -7056,17 +7056,23 @@ If no function is specified this is @samp{<none>}.
@end table
@kindex skip delete
+@kindex delete skip
@item skip delete @r{[}@var{range}@r{]}
+@itemx delete skip @r{[}@var{range}@r{]}
Delete the specified skip(s). If @var{range} is not specified, delete all
skips.
@kindex skip enable
+@kindex enable skip
@item skip enable @r{[}@var{range}@r{]}
+@itemx enable skip @r{[}@var{range}@r{]}
Enable the specified skip(s). If @var{range} is not specified, enable all
skips.
@kindex skip disable
+@kindex disable skip
@item skip disable @r{[}@var{range}@r{]}
+@itemx disable skip @r{[}@var{range}@r{]}
Disable the specified skip(s). If @var{range} is not specified, disable all
skips.
diff --git a/gdb/skip.c b/gdb/skip.c
index ea8e9a210af..c845e7fc705 100644
--- a/gdb/skip.c
+++ b/gdb/skip.c
@@ -769,6 +769,7 @@ 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."),
&skiplist);
set_cmd_completer (c, complete_skip_number);
+ add_alias_cmd ("skip", c, class_breakpoint, 0, &enablelist);
c = add_cmd ("disable", class_breakpoint, skip_disable_command, _("\
Disable skip entries.\n\
@@ -778,6 +779,7 @@ 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."),
&skiplist);
set_cmd_completer (c, complete_skip_number);
+ add_alias_cmd ("skip", c, class_breakpoint, 0, &disablelist);
c = add_cmd ("delete", class_breakpoint, skip_delete_command, _("\
Delete skip entries.\n\
@@ -787,6 +789,7 @@ 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."),
&skiplist);
set_cmd_completer (c, complete_skip_number);
+ add_alias_cmd ("skip", c, class_breakpoint, 0, &deletelist);
add_info ("skip", info_skip_command, _("\
Display the status of skips.\n\
diff --git a/gdb/testsuite/gdb.base/skip.exp b/gdb/testsuite/gdb.base/skip.exp
index ea9eaf9c0e5..7a5f297b67e 100644
--- a/gdb/testsuite/gdb.base/skip.exp
+++ b/gdb/testsuite/gdb.base/skip.exp
@@ -75,6 +75,9 @@ gdb_test "skip delete 999" "No skiplist entries found with number 999."
gdb_test "skip enable a" "Arguments must be numbers or '\\$' variables."
gdb_test "skip disable a" "Arguments must be numbers or '\\$' variables."
gdb_test "skip delete a" "Arguments must be numbers or '\\$' variables."
+gdb_test "enable skip 999" "No skiplist entries found with number 999."
+gdb_test "disable skip 999" "No skiplist entries found with number 999."
+gdb_test "delete skip 999" "No skiplist entries found with number 999."
# Ask for info on a skiplist entry which doesn't exist.
@@ -209,6 +212,22 @@ with_test_prefix "admin" {
gdb_test_no_output "save skip [standard_output_file skips]" \
"save skips to file"
+ gdb_test "disable skip"
+ gdb_test "info skip" \
+ [multi_line "Num\\s+Enb\\s+Glob\\s+File\\s+RE\\s+Function" \
+ "2\\s+n\\s+n\\s+<none>\\s+n\\s+main" \
+ "3\\s+n\\s+n\\s+$srcfile1\\s+n\\s+<none>" \
+ "4\\s+n\\s+n\\s+<none>\\s+n\\s+baz"] \
+ "info skip after 'disable skip'"
+
+ gdb_test "enable skip"
+ gdb_test "info skip" \
+ [multi_line "Num\\s+Enb\\s+Glob\\s+File\\s+RE\\s+Function" \
+ "2\\s+y\\s+n\\s+<none>\\s+n\\s+main" \
+ "3\\s+y\\s+n\\s+$srcfile1\\s+n\\s+<none>" \
+ "4\\s+y\\s+n\\s+<none>\\s+n\\s+baz"] \
+ "info skip after 'enable skip'"
+
gdb_test "skip disable 4 2-3"
gdb_test "info skip" \
[multi_line "Num\\s+Enb\\s+Glob\\s+File\\s+RE\\s+Function" \
@@ -236,7 +255,7 @@ with_test_prefix "admin" {
"4\\s+n\\s+n\\s+<none>\\s+n\\s+baz"] \
"info skip after deleting 2 3"
- gdb_test "skip delete"
+ gdb_test "delete skip"
gdb_test "info skip" "Not skipping any files or functions\." \
"info skip after deleting all"
}
More information about the Gdb-cvs
mailing list