perl调试器冻结

时间:2010-06-11 18:15:21

标签: perl

第一次perl用户和我正在尝试调试一些脚本以遵循项目逻辑和当然语法。 在输入命令行$

后使用cygwin
$ perl -d sample.pl

Loading DB routines from perl5db.pl version 1.3
Editor support available.

Enter h or `h h' for help, or `perldoc perldebug' for more help.

main::(sample.pl:5):    print 'Hello world.';           # Print a message
DB<1>

它挂在DB&lt; 1&gt;处。线。我不能在提示符下输入任何内容。

这篇文章不恰当的原因是什么?或者这怎么不清楚?

这是实际的程序代码:

#!/usr/local/bin/perl
#
# Program to do the obvious
#
print 'Hello world.';       # Print a message

2 个答案:

答案 0 :(得分:2)

我在家里升级了我的cygwin安装并遇到了类似的问题(尽管可能不是完全相同的问题 - perl调试器仍然响应我的输入但是没有显示我的输入,并且即使在我退出之后仍然输入我的输入调试器)。在此期间,当我想出发生了什么时,我的解决方法是启动xemacs,启动shell(M-x shell),并从emacs缓冲区运行perl调试器。

如果这对您有用,那么您的cygwin终端设置会有一些时髦。如果您的调试器甚至挂在emacs缓冲区中,那么其他一些时髦的东西正在发生,但我不知道它可能是什么。

答案 1 :(得分:0)

很抱歉恢复了这个有三年之久的问题,但我相信我遇到了同样的问题,并找到了解决方案。

在我的情况下,perl -de0infocmp调用ncurses,它以一种奇怪的方式挂起(无法杀死它)。并且infocmp似乎是我的Avast反病毒的受害者,其在BLODA下被列为影响Cygwin。禁用它解决了问题 - 看看你是否有任何列出的应用程序并尝试禁用它(也许还尝试安全模式)。

此外,只需重命名infocmp.exe允许perl -d正常运行。最后我使用了这种方法并让我的Avast运行。

它也可能是perl -d正在启动的不同可执行文件 - 尝试运行strace的任何挂起,查看最后提到的可执行文件是什么,并尝试查看这是否是罪魁祸首。< / p>