如何使用printf调试TCL源代码v8.4
我在系统中使用TCL作为嵌入式控件,我需要稍微修改它的核心源代码,我指的是generic/下的代码,例如如何使用printf调试TCL源代码v8.4,tcl,Tcl,我在系统中使用TCL作为嵌入式控件,我需要稍微修改它的核心源代码,我指的是generic/下的代码,例如tclinep.c。我将printf添加到源代码中以跟踪修改,但由于某些原因,我无法看到输出。我看到代码正在使用fprintf,我使用了它并尝试了stdout和stderr,但仍然不起作用 我已经添加了“--enable symbols=all”来运行配置和重新构建包。还有什么我需要做的吗?您应该改用调试器。向核心代码中添加printf语句将导致输出出现在stdout上,Tcl脚本可能会重定向
tclinep.c
。我将printf添加到源代码中以跟踪修改,但由于某些原因,我无法看到输出。我看到代码正在使用fprintf
,我使用了它并尝试了stdout和stderr,但仍然不起作用
我已经添加了“
--enable symbols=all
”来运行配置和重新构建包。还有什么我需要做的吗?您应该改用调试器。向核心代码中添加printf语句将导致输出出现在stdout上,Tcl脚本可能会重定向该stdout。使用fprintf(stderr,…)
可能不会与您运行的脚本发生冲突<代码>--启用符号只会导致可调试的生成-它不会影响写入标准输出的能力,但会导致调试器能够生成有意义的输出
你不会说-但是如果你在Windows上并且嵌入了一个图形程序,那么你可能无论如何都没有标准输出。在Windows上,最好使用OutputDebugString并在VisualStudio的输出窗口或SysinternalDBGView中查看消息。
在unix上,启动应用程序的控制台应该显示输出。然而,使用调试器跟踪您的MOD将是最好的途径
你确定你真的需要修改核心吗?对我来说似乎不太可能。通常,您只需向解释器添加额外的命令,为宿主应用程序提供接口。Tcl API提供了对几乎所有您可能需要处理的内容的访问。您应该改用调试器。向核心代码中添加printf语句将导致输出出现在stdout上,Tcl脚本可能会重定向该stdout。使用
fprintf(stderr,…)
可能不会与您运行的脚本发生冲突<代码>--启用符号只会导致可调试的生成-它不会影响写入标准输出的能力,但会导致调试器能够生成有意义的输出
你不会说-但是如果你在Windows上并且嵌入了一个图形程序,那么你可能无论如何都没有标准输出。在Windows上,最好使用OutputDebugString并在VisualStudio的输出窗口或SysinternalDBGView中查看消息。
在unix上,启动应用程序的控制台应该显示输出。然而,使用调试器跟踪您的MOD将是最好的途径
你确定你真的需要修改核心吗?对我来说似乎不太可能。通常,您只需向解释器添加额外的命令,为宿主应用程序提供接口。Tcl API提供了对几乎所有您可能需要处理的内容的访问。您应该改用调试器。向核心代码中添加printf语句将导致输出出现在stdout上,Tcl脚本可能会重定向该stdout。使用
fprintf(stderr,…)
可能不会与您运行的脚本发生冲突<代码>--启用符号只会导致可调试的生成-它不会影响写入标准输出的能力,但会导致调试器能够生成有意义的输出
你不会说-但是如果你在Windows上并且嵌入了一个图形程序,那么你可能无论如何都没有标准输出。在Windows上,最好使用OutputDebugString并在VisualStudio的输出窗口或SysinternalDBGView中查看消息。
在unix上,启动应用程序的控制台应该显示输出。然而,使用调试器跟踪您的MOD将是最好的途径
你确定你真的需要修改核心吗?对我来说似乎不太可能。通常,您只需向解释器添加额外的命令,为宿主应用程序提供接口。Tcl API提供了对几乎所有您可能需要处理的内容的访问。您应该改用调试器。向核心代码中添加printf语句将导致输出出现在stdout上,Tcl脚本可能会重定向该stdout。使用
fprintf(stderr,…)
可能不会与您运行的脚本发生冲突<代码>--启用符号只会导致可调试的生成-它不会影响写入标准输出的能力,但会导致调试器能够生成有意义的输出
你不会说-但是如果你在Windows上并且嵌入了一个图形程序,那么你可能无论如何都没有标准输出。在Windows上,最好使用OutputDebugString并在VisualStudio的输出窗口或SysinternalDBGView中查看消息。
在unix上,启动应用程序的控制台应该显示输出。然而,使用调试器跟踪您的MOD将是最好的途径
你确定你真的需要修改核心吗?对我来说似乎不太可能。通常,您只需向解释器添加额外的命令,为宿主应用程序提供接口。Tcl API提供了对几乎所有您可能需要处理的内容的访问。此外,您还可以尝试将日志消息转储到文件中(当然是带有时间戳的文件)。这就是我调试服务器的方式(特别是在服务器作为多个进程运行的情况下)。此外,您可以尝试将日志消息转储到文件中(当然是带有时间戳的)。这就是我调试服务器的方式(特别是在服务器作为多个进程运行的情况下)。此外,您可以尝试将日志消息转储到文件中(当然是带有时间戳的)。这就是我调试服务器的方式(特别是在服务器作为多个进程运行的情况下)。此外,您可以尝试将日志消息转储到文件中(当然是带有时间戳的)。这就是我调试服务器的方式(特别是在服务器作为多个进程运行的情况下)。您试图添加的功能是什么?您需要调试Tcl本身才能了解哪些功能?