Returns the backtrace of the call stack as a list
proc backtrace {} { set frames [list] for {set i 1} {$i < [info level]} {incr i} { lappend frames [dict get [info frame $i] cmd] } return $frames }