

          memory options
               The Tcl memory command gives the Tcl developer control
               of Tcl's memory debugging capabilities.  The memory
               command has several suboptions, which are described
               below.  It is only available when Tcl has been compiled
               with memory debugging enabled.

          memory info
               Produces a report containing the total allocations and
               frees since Tcl began, the current packets allocated
               (the current number of calls to ckalloc not met by a
               corresponding call to ckfree), the current bytes
               allocated, and the maximum number of packets and bytes
               allocated.

          memory trace [on|off]
               Turns memory tracing on or off.  When memory tracing is
               on, every call to ckalloc causes a line of trace
               information to be written to stderr, consisting of the
               word ckalloc, followed by the address returned, the
               amount of memory allocated, and the C filename and line
               number of the code performing the allocation, for
               example...

                  ckalloc 40e478 98 tclProc.c 1406

               Calls to ckfree are traced in the same manner, except
               that the word ckalloc is replaced by the word ckfree.

          memory validate [on|off]
               Turns memory vaidation on or off.  When memory
               validation is enabled, on every call to ckalloc or
               ckfree, the guard zones are checked for every piece of
               memory currently in existence that was allocated by
               ckalloc.  This has a large performance impact and
               should only be used when overwrite problems are
               strongly suspected.  The advantage of enabling memory
               validation is that a guard zone overwrite can be
               detected on the first call to ckalloc or ckfree after
               the overwrite occurred, rather than when the specific
               memory with the overwritten guard zone(s) is freed,
               which may occur long after the overwrite occurred.

          memory trace_on_at_malloc nnn
               Enable memory tracing after nnn ckallocs have been
               performed.  For example, if you enter memory
               trace_on_at_malloc 100, after the 100th call to
               ckalloc, memory trace information will begin being
               displayed for all allocations and frees.  Since there
               can be a lot of memory activity before a problem
               occurs, judicious use of this option can reduce the
               slowdown caused by tracing (and the amount of trace
               information produced), if you can identify a number of
               allocations that occur before the problem sets in.  The
               current number of memory allocations that have occured
               since Tcl started is printed on a guard zone failure.

          memory break_on_malloc nnn
               After the nnn allocations have been performed, ckallocs
               output a message to this effect and that it is now
               attempting to enter the C debugger.  Tcl will then
               issue a SIGINT signal against itself.  If you are
               running Tcl under a C debugger, it should then enter
               the debugger command mode.

          memory display file
               Write a list of all currently allocated memory to the
               specified file.
