有没有办法在获取 tcl 脚本文件后记录下命令行字符串

问题描述 投票:0回答:1

我必须在我的 C++ 代码中获取 tcl 脚本文件,例如:

std::string cmd = "源测试.tcl"; Tcl_Eval(cmd.c_str());

此脚本文件中有很多 procs/commands,调用后会发生 var/command subst,我想知道在 subst 完成后如何使用 tcl C API 记录每个特定命令,或者是否有办法恢复原始命令命令字符串就在注册为自定义 tcl 命令的过程的 C++ 函数内?谢谢。

tcl
1个回答
1
投票

命令执行跟踪可以做到这一点(请参阅

trace add execution
,或
Tcl_TraceCommand
以及正确的选项,特别是
TCL_TRACE_ENTER_DURING_EXEC
)。您需要一个包装器命令来应用跟踪上下文,但这可能只是这样的琐事:

proc trace_wrapper script {
    uplevel 1 $script
}
© www.soinside.com 2019 - 2024. All rights reserved.