我喜欢在业余时间做一些 TiVo hacking - TiVo 使用 Linux 变体和TCL。我想在我的 Windows 笔记本电脑上编写 TCL 脚本,对其进行测试,然后将它们通过 FTP 传输到我的 TiVo。
请给我推荐一个 Windows 的 TCL 调试环境好吗?
Activestate 的 Komodo 是适用于 Windows/Linux 的优秀 IDE。有试用版 - 我不确定试用后是否有免费版。
我不确定您是否需要这样的调试环境。只需从 ActiveState ( http://www.activestate.com/Products/activetcl/index.mhtml ) 获取二进制版本并从命令提示符 (C:/blahblah/tclsh myprog.tcl) 运行您的脚本,看看它吐出什么出去。
我建议不要从源代码构建它,因为它并没有真正为您带来任何好处。
这个 wiki 页面讨论了在 Tcl 中开发和调试的工具。特别是,我迷上了 tkinspect(在该 wiki 页面上提到,在 wiki 的其他地方有它自己的页面),它允许在 linux 或其他 unix x 环境中与正在运行的 tk 应用程序交互以尝试进行一些调试。当然,ActiveState 的商业产品“tcl dev kit”有一个调试器。wiki 上也讨论了其他调试器 - 免费且不那么免费。
现在有一个用于 Netbeans 的 Tcl 插件,它具有调试功能。以下是一些截图:http ://wiki.tcl.tk/28657
如果您正在寻找具有编辑功能的调试器, RamDebugger也是一个不错的工具。
ActiveState 有一个我过去使用过的 Tcl 开发工具包(不是免费的,但很便宜)。它甚至可以与我们的嵌入式 tcl 解释器一起使用。
我发现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
}
}