2010-06-11 115 views
2

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

$ 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 < 1>线。提示时我无法输入任何内容。

有没有原因,为什么这篇文章不适合?或者如何不清楚?

这是实际的程序代码:

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

请添加导致调试器挂起的代码示例。另外,请查看是否可以减少显示问题的最小样本数。 – DVK 2010-06-11 18:49:24

+1

此外,请尝试使用代码标记来显示代码/脚本输出......上述两个问题都可能导致了投票结果(我不是那个,所以我只能推测) – DVK 2010-06-11 18:52:53

+0

只是为了确认 - 线是整个程序的程度? Thx – DVK 2010-06-11 19:07:01

回答

2

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

如果这对你的作品,再有就是你的cygwin的终端设置事情的东西时髦。如果你的调试器挂在一个emacs缓冲区中,那么其他的东西就会变得怪异,但我不知道它会是什么。

0

对不起重振这个三十岁的问题,但我相信已经击中了同样的问题,并且已经找到了解决办法。

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

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

它也可能是一个不同的可执行文件perl -d正在启动 - 尝试运行任何与strace挂起的内容,查看最后一个可执行文件是什么,并尝试查看是否是罪魁祸首。