cmdtrace level|on ?noeval? ?notruncate? ?procs? ?fileid? 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. The following options are available: noeval Causes arguments to be printed unevaluated. If noeval is specified, the arguments are printed before evaluation. Otherwise, they are printed afterwards. If the command line is longer than 60 charac- ters, it is truncated to 60 and a "..." is postpended to indicate that there was more output than was displayed. 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. notruncate Disables the truncation of commands and evalu- ated arguments. procs Enables the tracing of procedure calls only. Commands that aren't procedure calls (i.e. calls to commands that are written in C, C++ or some object-compatible language) are not traced if the procs option is specified. This option is particularly useful for greatly reducing the output of cmdtrace while debug- ging. fileid This is a file id as returned by the open com- mand. If specified, then the trace output will be written to the file rather than std- out. A stdio buffer flush is done after every line is written so that the trace may be moni- tored externally or provide useful information for debugging problems that cause core dumps. The most common use of this command is to enable tracing to a file during the development. If a failure occurs, a trace is then available when needed. Command tracing will slow down the execution of code, so it should be removed when code is debugged. The following command will enable tracing to a file for the remainder of the program: cmdtrace on [open cmd.log w] cmdtrace off Turn off all tracing. cmdtrace depth Returns the current maximum trace level, or zero if trace is disabled. This command is provided by Extended Tcl.