* gdb.texinfo (Define): Document $arg0... arguments to commands,
authorPer Bothner <per@bothner.com>
Tue, 14 Mar 1995 00:49:33 +0000 (00:49 +0000)
committerPer Bothner <per@bothner.com>
Tue, 14 Mar 1995 00:49:33 +0000 (00:49 +0000)
and new 'if' and 'while' commands.

gdb/doc/ChangeLog
gdb/doc/gdb.texinfo

index 79f5b0c83d75787f42658acf4253d556a01cf043..8cc1d5feba10399dc443a874b53ac069ed32d667 100644 (file)
@@ -1,3 +1,8 @@
+Mon Mar 13 16:49:13 1995  Per Bothner  <bothner@kalessin.cygnus.com>
+
+       * gdb.texinfo (Define):  Document $arg0... arguments to commands,
+       and new 'if' and 'while' commands.
+
 Fri Feb 17 15:24:35 1995  Per Bothner  <bothner@kalessin.cygnus.com>
 
        * gdb.texinfo (Artificial arrays):  Note use of coerce-to-array-type.
index 7e445aada923be2cece18412912b742a77c29420..898f6b97a47ed7a3386413a2332a2354e400d051 100644 (file)
@@ -7816,6 +7816,24 @@ The definition of the command is made up of other @value{GDBN} command lines,
 which are given following the @code{define} command.  The end of these
 commands is marked by a line containing @code{end}.
 
+@item if
+@kindex if
+@kindex else
+Takes a single argument, which is an expression to evaluate.
+It is followed by a series of commands that are executed
+only if the expression is true (nonzero).
+There can then optionally be a line @code{else}, followed
+by a series of commands that are only executed if the expression
+was false.  The end of the list is marked by a line containing @code{end}.
+
+@item while
+@kindex while
+The syntax is similar to @code{if}:  The command takes a single argument,
+which is an expression to evaluate, and must be followed by the commands to
+execute, one per line, terminated by an @code{end}.
+The commands are executed repeatedly as long as the expression
+evaluates to true.
+
 @item document @var{commandname}
 @kindex document
 Give documentation to the user-defined command @var{commandname}.  The
@@ -7842,7 +7860,24 @@ documentation).  If no @var{commandname} is given, display the
 definitions for all user-defined commands.
 @end table
 
-User-defined commands do not take arguments.  When they are executed, the
+User-defined commands may accept up to 10 arguments separated by whitespace.
+Arguments are accessed within the user command via @code{$arg0}..@code{$arg9}.
+A trivial example:
+@smallexample
+define adder
+print $arg0 + $arg1 + $arg2
+end
+@end smallexample
+Defines the command @code{adder} which prints the sum of its three arguments.
+To execute the command use:
+@smallexample
+adder 1 2 3
+@end smallexample
+
+Note the arguments are text substitutions, so they may reference variables,
+use complex expressions, or even perform inferior function calls.
+
+When user-defined commands are executed, the
 commands of the definition are not printed.  An error in any command
 stops execution of the user-defined command.