fork(1) download
  1. proc get_location {} {
  2. set caller_framelevel [expr [info frame] - 1]
  3. set up [expr $caller_framelevel - 1]
  4. set fr [expr $caller_framelevel - 0]
  5. set location "[uplevel $up {info script}]:[dict get [info frame $fr] line]"
  6. return $location
  7. }
  8.  
  9. proc p1 {} {
  10. puts [get_location]
  11. }
  12.  
  13. puts [get_location]
  14.  
  15. if {true} {
  16. puts [get_location]
  17.  
  18. if {1} {
  19. puts [get_location]
  20. }
  21. }
  22.  
  23. proc p2 {} {
  24. p1
  25. }
  26.  
  27. p1
  28. p2
Success #stdin #stdout 0s 15768KB
stdin
Standard input is empty
stdout
prog:13
prog:16
prog:19
prog:10
prog:10