aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSteve Bennett <steveb@workware.net.au>2023-04-13 08:53:04 +1000
committerSteve Bennett <steveb@workware.net.au>2023-04-13 09:29:51 +1000
commit7972a7d0b62f7041151db74e6a00a50d67a072f5 (patch)
treef1d224ce3075c16cb84186aecfad67518f7a8145
parentd6078771a56b1f38f420d302e1530efcc1b45590 (diff)
downloadjimtcl-7972a7d0b62f7041151db74e6a00a50d67a072f5.zip
jimtcl-7972a7d0b62f7041151db74e6a00a50d67a072f5.tar.gz
jimtcl-7972a7d0b62f7041151db74e6a00a50d67a072f5.tar.bz2
stacktrace: handle missing cmd in [info frame]
Some stack frames may have no cmd (e.g. with eval). Ensure that [stacktrace] still handles such frames by setting an empty proc name in that case. Signed-off-by: Steve Bennett <steveb@workware.net.au>
-rw-r--r--stdlib.tcl2
1 files changed, 1 insertions, 1 deletions
diff --git a/stdlib.tcl b/stdlib.tcl
index 01d73c0..cd82419 100644
--- a/stdlib.tcl
+++ b/stdlib.tcl
@@ -42,7 +42,7 @@ proc stacktrace {{skip 0}} {
incr skip 2
loop level $skip [info level]+1 {
set frame [info frame -$level]
- lappend trace [lindex [dict get $frame cmd] 0] [dict get $frame file] [dict get $frame line]
+ lappend trace [lindex [dict getdef $frame cmd {}] 0] [dict get $frame file] [dict get $frame line]
}
return $trace
}