Documentation of usage is left as an exercise to the reader. proc "tabula rasa" {} { # Still to do: file handles (and others?), other kinds of traces, # namespace, global variables, procs, ... foreach socket [file channels sock*] { close $socket } foreach variable [info glob] { foreach pair [trace info variable ::$variable] { foreach {op traced_command} $pair {} set op [string range $op 0 0] trace vdelete ::$variable $op $traced_command } } eval destroy [winfo children .] foreach name [image names] { image delete $name } }