2010-06-11 82 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掛起的內容,查看最後一個可執行文件是什麼,並嘗試查看是否是罪魁禍首。