我必须在我的 C++ 代码中获取 tcl 脚本文件,例如:
std::string cmd = "源测试.tcl"; Tcl_Eval(cmd.c_str());
此脚本文件中有很多 procs/commands,调用后会发生 var/command subst,我想知道在 subst 完成后如何使用 tcl C API 记录每个特定命令,或者是否有办法恢复原始命令命令字符串就在注册为自定义 tcl 命令的过程的 C++ 函数内?谢谢。
命令执行跟踪可以做到这一点(请参阅
trace add execution
,或 Tcl_TraceCommand
以及正确的选项,特别是 TCL_TRACE_ENTER_DURING_EXEC
)。您需要一个包装器命令来应用跟踪上下文,但这可能只是这样的琐事:
proc trace_wrapper script {
uplevel 1 $script
}