**recover** function which allows you to debug your code more easily. Place it in your code to jump directly in a procedure or namespace for debugging. Works like the R recover function [https://www.rdocumentation.org/packages/utils/versions/3.5.3/topics/recover]. ====== proc recover {{err ""}} { if {$err ne ""} { puts "$err" } else { puts "" } uplevel 1 { set code "" puts -nonewline "\ndebug % " while {true} { gets stdin code if {[regexp {^Q\s*} $code]} { break } catch { eval $code } err if {$err ne "" } { puts "Error: $err" } puts -nonewline "\ndebug % " } } } ====== ***Session example:*** ====== $ rlwrap tclsh % source test.tcl % debugMe2 wrong # args: should be "debugMe2 c" % debugMe2 Hi debug debugMe2 debug % puts [info vars] c k code debug % puts [array names k] bc ab debug % debug % Q k(d) ======