我的产品嵌入了TCL虚拟机来运行TCL脚本。我们基本上采取的TCL 8.4源,并将其集成到我们的产品,整个产品在C.如何跟踪printf被禁用的方式/位置?
编程现在我需要调试一些问题,最好的,我可以在运行时约TCL VM一些见解。所以我在TCL源码中添加了一些printf,但是我看不到任何打印件。请注意,添加到代码一侧的printf按预期工作。
这使我怀疑在TCL某处中的printf被禁用。
我看到TCL源下面的代码片段:
#ifdef TCL_COMPILE_DEBUG
fprintf(stdout, " Starting stack top=%d\n", eePtr->stackTop);
fflush(stdout);
#endif
我通过启用TCL_COMPILE_DEBUG重建TCL,我仍然无法看到打印出来。
任何建议,我应该如何从这里出发?
使用'-E'编译? –
你可以在'#ifdef'之后加一个'#error tcl_debug'来验证编译器是否会将fprintf放在可执行文件中。在执行'fprintf'之前,仍然需要满足多少运行时间条件。 – user3386109