Posted to tcl by dgp at Thu Aug 08 14:58:48 GMT 2013view raw
- % proc report args {
- set frame [info frame]
- set i 1
- while {$i <= $frame} {
- puts "FRAME $i: [info frame $i]"
- incr i
- }
- catch error m o
- puts "STACK: [dict get $o -errorstack]"
- }
- % proc demo {} {uplevel 1 report}
- % demo
- FRAME 1: type eval line 1 cmd demo level 1
- FRAME 2: type proc line 1 cmd {uplevel 1 report} proc ::demo
- FRAME 3: type eval line 1 cmd report proc ::demo
- FRAME 4: type proc line 5 cmd {info frame $i} proc ::report level 0
- STACK: INNER {invokeStk1 error} CALL report
- % namespace unknown report
- report
- % nosuch
- FRAME 1: type eval line 1 cmd nosuch level 1
- FRAME 2: type proc line 5 cmd {info frame $i} proc ::report level 0
- STACK: INNER {invokeStk1 error} CALL {report nosuch}
- The -errorstack doesn't hide away the command [report] in the
- history.
- Strange (and something of a shame) there's not a common foundation.