Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用printf调试TCL源代码v8.4_Tcl - Fatal编程技术网

如何使用printf调试TCL源代码v8.4

如何使用printf调试TCL源代码v8.4,tcl,Tcl,我在系统中使用TCL作为嵌入式控件,我需要稍微修改它的核心源代码,我指的是generic/下的代码,例如tclinep.c。我将printf添加到源代码中以跟踪修改,但由于某些原因,我无法看到输出。我看到代码正在使用fprintf,我使用了它并尝试了stdout和stderr,但仍然不起作用 我已经添加了“--enable symbols=all”来运行配置和重新构建包。还有什么我需要做的吗?您应该改用调试器。向核心代码中添加printf语句将导致输出出现在stdout上,Tcl脚本可能会重定向

我在系统中使用TCL作为嵌入式控件,我需要稍微修改它的核心源代码,我指的是generic/下的代码,例如
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本身才能了解哪些功能?