This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
[RFAv2 0/3] Allow the user to define default leading args for commands and aliases
- From: Philippe Waroquiers <philippe dot waroquiers at skynet dot be>
- To: gdb-patches at sourceware dot org
- Date: Mon, 5 Aug 2019 22:51:56 +0200
- Subject: [RFAv2 0/3] Allow the user to define default leading args for commands and aliases
Allow the user to define default leading args for commands and aliases.
This patch series implements, tests and documents the following commands:
set leading-args COMMAND [LEADING-ARGS...]
show leading-args [COMMAND]
set enable-leading-args [on|off]
show enable-leading-args
It also changes the alias command to be:
alias [-a] [--] ALIAS = COMMAND [LEADING-ARGS...]
Using the above leading-args commands and arguments, you can
define default arguments for commands or define powerful aliases.
For example:
alias bt_ALL = backtrace -entry-values both -frame-arg all -past-main -past-entry -full
defines the alias bt_ALL that will give as much information as possible
in a backtrace.
Leading args can usefully be combined with the 'with' command, such as:
Make "wLapPeu" an alias of 2 nested "with":
alias wLapPeu = with language pascal -- with print elements unlimited --
or have an alias pp10 to pretty print an expression with a maximum of
10 elements:
alias pp10 = with print pretty -- with print elem 10 -- print
This patch series also adds a completer for 'alias'.
Note 1: a preliminary version of this idea (using a command called
'add-args' was discussed in
https://sourceware.org/ml/gdb-patches/2019-06/msg00395.html
where Tom suggested to make it more GDB like, using 'set' command.
Note 2: Following another comment of Tom, there is no '=' character
to separate COMMAND from its leading args.
If ever this would be ambiguous in some cases, we could introduce
an optional '=' character to separate COMMAND from its LEADING-ARGS.
Similarly, the alias command has no separator between COMMAND
and its LEADING-ARGS.
Compared to the first version, the changes are:
* Removed the = separator between COMMAND and LEADING-ARGS
* Converted alias command to use the option framework.
* Show the leading args of aliases in 'help aliases'.