TCL开发:调试环境

TCL development: debug environment

提问人:ColinYounger 提问时间:8/21/2008 更新时间:5/4/2023 访问量:2139

问:

我喜欢在业余时间进行一些 TiVo 黑客攻击 - TiVo 使用 Linux 变体和 TCL。我想在我的 Windows 笔记本电脑上编写 TCL 脚本,测试它们,然后将它们通过 FTP 传输到我的 TiVo。

请问我能推荐一个适用于 Windows 的 TCL 调试环境吗?

调试 TCL TiVo

评论

0赞 denis phillips 8/21/2008
使用 Mingw 构建 Tcl/Tk

答:

4赞 Abhinav 8/24/2008 #1

Activestate 的 Komodo 是一个很好的 Windows/Linux IDE。有一个试用版 - 我不确定试用后是否有免费版本。

评论

0赞 daustin777 3/5/2009
Komodo是一个不错的Mac/Linux/WinIDE。与 Tcl 配合得很好。我已经使用它几年了。
2赞 Toby 9/17/2008 #2

我不确定您是否需要这样的调试环境。只需从 ActiveState (http://www.activestate.com/Products/activetcl/index.mhtml) 获取二进制版本,然后从命令提示符 (C:/blahblah/tclsh myprog.tcl) 运行脚本,看看它吐出什么。

我建议不要从源代码构建它,因为它不会真正为你带来任何好处。

评论

0赞 Dana Robinson 1/6/2009
printf(呃,puts)调试不能替代一个好的调试器。
0赞 Dana Robinson 1/6/2009 #3

ActiveState 有一个我过去使用过的 Tcl 开发工具包(不是免费的,但很便宜)。它甚至可以与我们的嵌入式 tcl 解释器一起使用。

http://www.activestate.com/tcl_dev_kit/

0赞 ctd 1/23/2009 #4

我发现这个来自 Tcl wiki(来自 Richard Suchenwirth)的断点设置器很方便。一旦解释器看到对此的调用,比如“bp beforehairyfunction”,它就会暂停并给你一个 tclsh 提示。

proc bp {{s {}}} {
        if ![info exists ::bp_skip] {
           set ::bp_skip [list]
        } elseif {[lsearch -exact $::bp_skip $s]>=0} return
    if [catch {info level -1} who] {set who ::}
    while 1 {
        puts -nonewline "$who/$s> "; flush stdout
        gets stdin line
        if {$line=="c"} {puts "continuing.."; break}
        if {$line=="i"} {set line "info locals"}
        catch {uplevel 1 $line} res
        puts $res
    }
 }
1赞 lvirden 1/22/2010 #5

此 wiki 页面讨论了用于在 Tcl 中进行开发和调试的工具。特别是,我迷上了 tkinspect(在那个 wiki 页面上提到,在 wiki 的其他地方有自己的页面),它允许 linux 或其他 unix x 环境中的人与正在运行的 tk 应用程序进行交互,以尝试进行一些调试。当然,ActiveState 的商业产品“tcl dev kit”有一个调试器。wiki 上还讨论了其他调试器 - 免费和不那么免费。

1赞 vanje 8/30/2011 #6

现在有一个用于 Netbeans 的 Tcl 插件,它具有调试功能。以下是一些屏幕截图: http://wiki.tcl.tk/28657

1赞 joheid 9/25/2011 #7

如果您正在寻找具有编辑可能性的调试器,RamDebugger 也是一个不错的工具。

0赞 user8031581 5/4/2023 #8

Tcl 开发工具包 (TDK) 包含一个调试器,您可以试用该调试器。自 2018 年以来,它是开源的(BSD-3 许可证),可以从 github 下载:

https://github.com/ActiveState/tdk

以前的付费版本很容易在 Windows 上安装,开源版本无需设置。