Posted to tcl by dgp at Thu Aug 08 14:45:03 GMT 2013view raw

  1.  
  2. % proc report args {
  3. set frame [info frame]
  4. set i 1
  5. while {$i <= $frame} {
  6. puts "FRAME $i: [info frame $i]"
  7. incr i
  8. }
  9. }
  10. % proc demo {} {uplevel 1 report}
  11. % demo
  12. FRAME 1: type eval line 1 cmd demo level 1
  13. FRAME 2: type proc line 1 cmd {uplevel 1 report} proc ::demo
  14. FRAME 3: type eval line 1 cmd report proc ::demo
  15. FRAME 4: type proc line 5 cmd {info frame $i} proc ::report level 0
  16. % namespace unknown report
  17. report
  18. % nosuch
  19. FRAME 1: type eval line 1 cmd nosuch level 1
  20. FRAME 2: type proc line 5 cmd {info frame $i} proc ::report level 0
  21.  
  22. The history of CmdFrames is different. Is it clear why?
  23. Is this difference documented? Must it remain unchanged?
  24.