This command provides runtime debugging output for variables and commands
without the need to edit your code.  For variables, the underlying mechanism
uses trace and dump var.  For commands, it renames
the observed procedure and uses a special wrapper procedure.  WARNING: using this procedure after checkpointing
state will result in major problems if you clean state because the renamed
(true) commands will be lost.
 
This procedure is experimental.  Comments are encouraged.
-  observe commandcmdname ?maxlevel?
-  This will create a wrapper command which prints out (using
dump) the call stack to the console.  maxlevel
represents the maximum number of levels of the call stack which will be
printed (defaults to 4).
-  observe cdeletecmdname
-  Removes the wrapper around an observed command.
-  observe cinfocmdname
-  Prints out useless info.
-  observe variablevarname operation ?args?
-  Currently a wrapper around trace that uses dumpto
print out the value of the named variable whenever the specified operation
on that variable occurs (must be read, write or unset).
-  observe vdeletevarname operation
-  Deletes the trace wrapper around the named variable.
-  observe vinfovarname
-  Prints out trace info about the named variable.