File: stacktrace.tcl

package info (click to toggle)
exmh 1%3A2.9.0-8
  • links: PTS
  • area: main
  • in suites: forky, sid, trixie
  • size: 4,932 kB
  • sloc: tcl: 38,143; perl: 1,647; makefile: 130; sh: 101; exp: 75; csh: 9; sed: 2
file content (18 lines) | stat: -rw-r--r-- 557 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
proc stacktrace {} {
    set stack "Stack trace:\n"
    set distanceToTop [info level]
    for {set i 1} {$i < $distanceToTop} {incr i} {
	set callerlevel [expr {$distanceToTop - $i}]
        set lvl [info level -$i]
        set pname [lindex $lvl 0]
	append stack "CALLER $callerlevel: $pname"
        foreach value [lrange $lvl 1 end] arg [info args $pname] {
            if {$value eq ""} {
                info default $pname $arg value
            }
            append stack " $arg='$value'"
        }
        append stack \n
    }
    return $stack
}