I require: command, fileName and lineNumber
the [info errorstack] return "something" which is missing some essential parts.
INNER {invokeStk1 ::tcllcconfig::LcSettingC::MK_NULL LookupBool in} CALL {::oo::Obj40::my LcSettingLookupBool}
problem: post versa pre parse expression
problem: the fileName(class etc) is *not* available
(client-0-0-0) [ServiceCallError] <Tok|2E3A471B{LcSettingRpc::LookupBool}> <Num|1>while executing
(server-0-0-0) [tcl_mqmsgque_ServiceCall] 'LcSettingC' hdl is NULL
(client-0-0-0) | 871 | send_mq.c | MqSendEND_AND_WAIT_RT (client-0-0-0) | 508 | high_lng.h | $ctx Send 'W' ... '2E3A471B{LcSettingRpc::LookupBool}:HC@O' ...lcconfig-2-0-5-(0-0-0+binary+pipe+tcl.pipe.pipe) { ...
(client-0-0-0) | 522 | high_lng.h | $ctx Send... (client-0-0-0) | 75 | ~KernelRpcClient.tcl | my Send $typ $fmt {*}$args
(client-0-0-0) | 588 | ~ConfigRpcClient.tcl | $rpc send "W" "2E3A471B{LcSettingRpc::LookupBool}:HC@O" $hdl $name
(client-0-0-0) | 3 | lcconfig.test | $null LookupBool in (client-0-0-0) | 2405 | tcltest-2.5.3.tm | uplevel 1 $script (client-0-0-0) | 1 | lcconfig.test | ::tcltest::RunTest lcconfig-2-0-5-(0-0-0+binary+pipe+tcl.pipe.pipe) { ...
(client-0-0-0) | 1651 | tcltest-2.5.3.tm | uplevel 1 $script (client-0-0-0) | 1 | lcconfig.test | ::tcltest::Eval {::tcltest::RunTest
(client-0-0-0) | 2021 | tcltest-2.5.3.tm | uplevel 1 [list [namespace origin Eval] $command 1]eq "binary"} -setup { ...
(client-0-0-0) | 87 | lcconfig.test | test lcconfig-2-0-5-($F+$B+$C+$S) { use invalid cfs } -constraints {$B
(client-0-0-0) | 6 | lcconfig.test | foreach F [handles] { ...
(client-0-0-0) | 649 | library.tcl | uplevel $code (client-0-0-0) | 195 | lcconfig.test | Block 2 { ... (client-0-0-0) | 104 | lcconfig.test | foreach S [filter SRV_LST $C ] { ...
(client-0-0-0) | 101 | lcconfig.test | foreach C [getEnv COM_LST] { ...
(client-0-0-0) | 98 | lcconfig.test | foreach B [getEnv BIN_LST] { ...
Hi,
my goal is to transfer the "errorInfo" into a "stacktrace" used by my SW.
I require: command, fileName and lineNumberessential parts.
the [info errorstack] return "something" which is missing some
[info errorstack]:
INNER {invokeStk1 ::tcllcconfig::LcSettingC::MK_NULL LookupBool in}CALL {::oo::Obj40::my LcSettingLookupBool}
as I understand:
$setting LookupBool $name == ::tcllcconfig::LcSettingC::MK_NULL
LookupBool in
problem: post versa pre parse expression
problem: the fileName(class etc) is *not* available
==== lcconfig-2-0-5-(0-0-0+binary+pipe+tcl.pipe.pipe) use invalid cfs
FAILED
---- Result was:
(client-0-0-0) [ServiceCallError] <Tok|2E3A471B{LcSettingRpc::LookupBool}> <Num|1>
(server-0-0-0) [tcl_mqmsgque_ServiceCall] 'LcSettingC' hdl is NULLwhile executing
"$setting LookupBool $name"
(class "::LibLcConfigRpcServer" method "LcSettingLookupBool" line 4)
invoked from within
"::oo::Obj40::my LcSettingLookupBool"
(client-0-0-0) | 871 | send_mq.c |MqSendEND_AND_WAIT_RT
(client-0-0-0) | 508 | high_lng.h | $ctx Send 'W' ...'2E3A471B{LcSettingRpc::LookupBool}:HC@O' ...
(client-0-0-0) | 522 | high_lng.h | $ctx Send...{*}$args
(client-0-0-0) | 75 | ~KernelRpcClient.tcl | my Send $typ $fmt
(client-0-0-0) | 588 | ~ConfigRpcClient.tcl | $rpc send "W""2E3A471B{LcSettingRpc::LookupBool}:HC@O" $hdl $name
(client-0-0-0) | 3 | lcconfig.test | $null LookupBool in| ::tcltest::RunTest lcconfig-2-0-5-(0-0-0+binary+pipe+tcl.pipe.pipe) { ...
(client-0-0-0) | 2405 | tcltest-2.5.3.tm | uplevel 1 $script
(client-0-0-0) | 1 | lcconfig.test
(client-0-0-0) | 1651 | tcltest-2.5.3.tm | uplevel 1 $script{::tcltest::RunTest lcconfig-2-0-5-(0-0-0+binary+pipe+tcl.pipe.pipe) { ...
(client-0-0-0) | 1 | lcconfig.test | ::tcltest::Eval
(client-0-0-0) | 2021 | tcltest-2.5.3.tm | uplevel 1 [list[namespace origin Eval] $command 1]
(client-0-0-0) | 87 | lcconfig.test | testlcconfig-2-0-5-($F+$B+$C+$S) { use invalid cfs } -constraints {$B eq "binary"} -setup { ...
(client-0-0-0) | 6 | lcconfig.test | foreach F[handles] { ...
(client-0-0-0) | 649 | library.tcl | uplevel $codeSRV_LST $C ] { ...
(client-0-0-0) | 195 | lcconfig.test | Block 2 { ...
(client-0-0-0) | 104 | lcconfig.test | foreach S [filter
(client-0-0-0) | 101 | lcconfig.test | foreach C [getEnvCOM_LST] { ...
(client-0-0-0) | 98 | lcconfig.test | foreach B [getEnvBIN_LST] { ...
Hi,
remark that "info errorstack" and the stack trace are different things.
In the first, variable names are replaced by values.
In the second, there are the variable names "$var".
They don't match directly.
THanks,
Harald
everyone is happy
https://core.tcl-lang.org/tips/doc/trunk/doc/help.md
* aotto1968 <[email protected]>
| TCL could have a wonderful "exception" interface
| 1. The (Tcl_GetReturnOptions) dict is the "exception-object"
| > example:
| > Tcl_GetReturnOptions(interp,TCL_ERROR): -code 1 -level 0
| > -errorstack {INNER {invokeStk1
| > ::tcllcconfig::LcSettingC::MK_NULL LookupBool in} CALL
| > {::oo::Obj40::my LcSettingLookupBool}} -errorcode NONE
| > -errorinfo
| {'LcSettingC' hdl is NULL
| > while executing
| > "$setting LookupBool $name"
| > (class "::LibLcConfigRpcServer" method "LcSettingLookupBool" line 4)
| > invoked from within
| > "::oo::Obj40::my LcSettingLookupBool"} -errorline 1
| 2. The "-errorstack" key has the LIST of [info frame] dicts until catch
| -> everyone is happy
I guess your contribution to the TCL code base would probably be
welcome, provided there is agreement on the necessity of this
feature...
https://core.tcl-lang.org/tips/doc/trunk/doc/help.md
R'
| Sysop: | Keyop |
|---|---|
| Location: | Huddersfield, West Yorkshire, UK |
| Users: | 715 |
| Nodes: | 16 (0 / 16) |
| Uptime: | 167:13:14 |
| Calls: | 12,096 |
| Calls today: | 4 |
| Files: | 15,003 |
| Messages: | 6,517,812 |