Version 1 of Pstack

Updated 2004-01-06 00:57:51

 package provide Pstack 1.0

 # --------------------------------------------------
 # This package prints the call order for a set
 # of user selected procudures.
 #
 # Place $Pstack::print at the beginning of all
 # the procedures you are interested in
 # tracing.
 #
 # Turn tracing on and off with the
 # Pstack::printON & Pstack::printOFF commands. When
 # I'm having problems with my code I often set 
 # --------------------------------------------------

 namespace eval Pstack {
         variable print
         set print Pstack::OFF
 }

 # ------------------------------
 # turn traccing on/off
 proc Pstack::printON { } {
         variable print

         set print Pstack::ON
 }
 proc Pstack::printOFF { } {
         variable print

         set print Pstack::OFF
 }
 # ------------------------------
 # no output
 proc Pstack::OFF { } { }

 # ------------------------------
 # print proc name and arguments
 proc Pstack::ON { } {
         puts "---"
         set indent ""
         set up_level [expr [info level]-1]
         for {set i 1} {$i<=[expr [info level]-1]} {incr i} {
                 set argList [info level ${i}]
                 puts stderr "${indent}[lindex $argList 0] {[lrange $argList 1 end]}"
                 append indent "  "
         }
 }