Posted to tcl by mr_calvin at Wed Dec 19 12:08:32 GMT 2018view pretty
set tracePrefix {apply {{args} { interp hide {} set proc set {args} {}; # NOOP trace add execution set leave {apply {{args} { rename set "" interp expose {} set }}} }}} trace add execution set enter $tracePrefix set x 1 puts [info vars x] trace remove execution set enter $tracePrefix set x 2 puts [info vars x]
Comments
Posted by sebres at Wed Dec 19 12:26:35 GMT 2018 [text] [code]
proc test {} { proc cmd {args} {puts " !! exec-cmd: $args"} set tracePrefix {apply {{args} { puts " ** trace -- $args **" if {[lindex $args 0 1] eq "--avoid-exec"} { interp hide {} cmd proc cmd {args} {}; # NOOP trace add execution cmd leave {apply {{args} { rename cmd "" interp expose {} cmd }}} } }}} trace add execution cmd enter $tracePrefix puts "1)"; cmd test1; puts ok1 puts "2)"; cmd --avoid-exec test2-no-exec; puts ok2 puts "3)"; cmd test3; puts ok3 puts "4)"; cmd --avoid-exec test4-no-exec; puts ok4 trace remove execution cmd enter $tracePrefix puts "5)"; cmd test5-no-trace; puts ok5 }; test