

          cmdtrace level|on [noeval] [notruncate] [flush] [filehandle]
               Print a trace statement for all commands executed at
               depth of level or below (1 is the top level).  If on is
               specified, all commands at any level are traced.  If
               noeval is specified, arguments are printed unevaluated
               -- if it is not specified, the arguments are printed
               after evaluation. If the command line is longer than 60
               characters, it is truncated to 60 and a "..." is
               postpended to indicate that there was more.  If noeval
               wasn't specified, the arguments are printed after
               evaluation.  In this case, each argument is truncated
               to 40 characters (with "..." postpended if the argument
               was longer than 40 characters) and printed. If an
               evaluated argument contains a space, the entire
               argument will be enclosed inside of braces (`{}') to
               allow the reader to visually separate the arguments
               from each other. If notruncate is specified, then the
               truncation of commands and evaluated arguments will be
               disabled. If flush is specified, then the output buffer
               will be flushed after each line is printed.  This is
               useful when tracing code that cause an application to
               abort, making it easy to narrow the problem down to the
               command that caused the abort. If filehandle is
               specified, then the trace output will be written to the
               file.

          cmdtrace off
               Turn off all tracing.

          cmdtrace depth
               Returns the current maximum trace level, or zero if
               trace is disabled.
