如何查找TCL代码中的错误

发布于 2024-09-05 10:04:09 字数 386 浏览 8 评论 0 原文

我正在学习 TCL,想知道如何找出代码中的错误。我的意思是哪一行发生了错误,或者我该如何调试它。

以下是我正在尝试的代码:

proc ldelete {list value}{
    set ix [lsearch -exact $list $value]
    if{$ix >=0}{
        return [lreplace $list $ix $ix]
    } else {
        return $list
    }
}

以下是我收到的错误:

 extra characters after close-brace

我将感谢您的帮助。

谢谢 阿迪亚

I am learning TCL and wanted to know how can I find out errors in my code. I mean what line no is error happening or how can I debug it.

Following is the code which I am trying :

proc ldelete {list value}{
    set ix [lsearch -exact $list $value]
    if{$ix >=0}{
        return [lreplace $list $ix $ix]
    } else {
        return $list
    }
}

Following is the error i am getting :

 extra characters after close-brace

I will appreciate the help.

Thanks
aditya

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

打小就很酷 2024-09-12 10:04:10

这里需要一个空格

proc ldelete {list value}{

list value} {

proc ldelete {list value} {和这里

if{$ix >=0}{if{$ix >=0}{proc ldelete { 代码> <

代码>if{$ix >=0} {

You need a space here

proc ldelete {list value}{

proc ldelete {list value} {

and here

if{$ix >=0}{

if{$ix >=0} {

坦然微笑 2024-09-12 10:04:10

尝试查看全局变量 errorInfo 的内容

puts $::errorInfo

相关文档链接:http://www.tcl.tk/man/tcl8.5/TclCmd/return.htmhttp://wiki.tcl.tk/1645

Try looking at the contents of the global variable errorInfo

puts $::errorInfo

Relevant documentation links: http://www.tcl.tk/man/tcl8.5/TclCmd/return.htm and http://wiki.tcl.tk/1645

说好的呢 2024-09-12 10:04:10

如果您购买了 ActiveState 出售的 Tcl Dev Kit 副本,它包含一个名为“tclchecker”的工具,可以检查许多不同类型的可能问题。

除了 frink 之外,还有一个免费的替代工具,名为 nagelfar。它提供了各种静态检查。

If you purchase a copy of the Tcl Dev Kit sold by ActiveState, it includes a tool called "tclchecker" which checks for many different kinds of possible problems.

A free alternative, besides frink, is a tool called nagelfar. It provides a variety of static checks.

御守 2024-09-12 10:04:10

我使用一个名为“frink”的静态检查器。谷歌一下,你就会找到它。

更新:
是的,frink 发现了我错过的许多错误。给我一个尝试。

I use a static checker called 'frink'. Google for it and you will find it.

UPDATE:
Yes, frink finds many errors I missed. Give me a try.

温柔戏命师 2024-09-12 10:04:09

如果您这样运行:

tcl foo.tcl

那么您应该会收到一条错误消息,告诉您错误位于第 1 行。(问题是右大括号和大括号之间缺少空格) 作为一般规则,如果您以交互方式工作,则

通常可以在 errorInfo 中找到有用的消息(例如堆栈跟踪),因此这通常很有帮助:

% put $errorInfo

If you are running this thus:

tcl foo.tcl

then you should be getting an error message telling you that the error is on line 1. (The problem is the lack of a space between the close brace and the open brace.)

As a general rule, if you are working interactively, useful messages (eg the stack trace) are often found in errorInfo, so this is often helpful:

% puts $errorInfo

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文