отладчик perl зависает - PullRequest
2 голосов
/ 11 июня 2010

В первый раз пользователь 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 <1>.Я не могу ничего ввести в командной строке.

Есть ли причина, по которой этот пост неуместен?или как это не ясно?

Это фактический код программы:

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

Ответы [ 2 ]

2 голосов
/ 11 июня 2010

Я обновил мою установку cygwin дома и столкнулся с аналогичной проблемой (хотя, возможно, не той же самой проблемой - отладчик perl по-прежнему реагирует на мой ввод, но не отображает мой ввод и игнорирует мой ввод даже после выхода изотладчик).Тем временем, пока я понимаю, что происходит, мой обходной путь - запустить xemacs, запустить оболочку (M-x shell) и запустить отладчик perl из буфера emacs.

Если это работает для вас,тогда с настройками терминала cygwin происходит что-то интересное.Если ваш отладчик зависает даже в буфере emacs, то происходит что-то еще, но я понятия не имею, что это может быть.

0 голосов
/ 24 декабря 2013

Извините за возрождение этого трехлетнего вопроса, но я считаю, что столкнулся с той же проблемой и нашел решение.

В моем случае perl -de0 вызывает infocmp из ncurses, который странным образом зависает (не может убить его). И infocmp, похоже, стал жертвой моего антивируса Avast, который указан в списке BLODA как влияющий на Cygwin. Отключение его решило проблему - посмотрите, есть ли у вас какое-либо из перечисленных приложений, и попробуйте отключить его (возможно, также попробуйте безопасный режим).

Кроме того, простое переименование infocmp.exe позволило perl -d нормально работать. В конце концов я использовал этот подход и оставил свой Avast запущенным.

Это может быть также другой исполняемый файл, который запускается perl -d - попробуйте выполнить все зависания с strace, посмотрите, какой последний исполняемый файл упоминается, и попытайтесь выяснить, является ли это виновником.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...