2010-06-11 6 views
2

Première fois que l'utilisateur perl et moi essayons de déboguer un script pour suivre la logique du projet et bien sûr la syntaxe. En utilisant Cygwin après son entrée à la ligne de commande $Le débogueur perl se bloque

$ 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> 

Il est suspendu à la DB < 1> ligne. Je ne peux rien entrer à l'invite.

Y a-t-il une raison pour laquelle ce post est inapproprié? ou comment cela n'est-il pas clair?

C'est le code réel du programme:

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

Veuillez ajouter un exemple de code entraînant le blocage du débogueur. En outre, s'il vous plaît voir si vous pouvez réduire l'ode complet à l'échantillon minimal affichant le problème. – DVK

+1

Aussi, s'il vous plaît essayez d'utiliser le code pour afficher le code/sortie de script ... Ces deux questions ci-dessus pourraient avoir contribué à voter vers le bas (je n'étais pas le seul, je ne peux que spéculer) – DVK

+0

ligne est l'étendue totale du programme? Thx – DVK

Répondre

2

Je mis à jour mon installation de Cygwin à la maison et a couru dans un problème similaire (mais peut-être pas exactement le même problème - le débogueur perl répond toujours à mon entrée, mais n'affiche pas mon entrée, et fubars mon entrée même après que j'ai quitté le débogueur). Pendant ce temps, alors que je m'imagine ce qui se passe, ma solution consiste à lancer xemacs, à lancer un shell (M-x shell) et à lancer le débogueur perl à partir du tampon emacs.

Si cela fonctionne pour vous, il y a quelque chose de funky avec vos paramètres de terminal cygwin. Si votre débogueur se bloque même dans un tampon emacs, alors quelque chose d'autre funky se passe mais je n'ai aucune idée de ce que ça pourrait être.

0

Désolé de raviver cette question de trois ans, mais je crois avoir été frappé par le même problème, et d'avoir trouvé la solution.

Dans mon cas, perl -de0 invoque de ncurses, qui pend d'une manière étrange (impossible de le tuer). Et infocmp semblait être une victime de mon antivirus Avast qui est répertorié sous BLODA comme affectant Cygwin. La désactivation résolvait le problème - voyez si vous avez l'une des applications listées et essayez de la désactiver (essayez peut-être aussi le mode sans échec).

De plus, en renommant simplement infocmp.exe, vous avez autorisé perl -d à s'exécuter normalement. À la fin, j'ai utilisé cette approche et laissé mon Avast en cours d'exécution.

Il peut également être un autre exécutable que perl -d démarre - essayez d'exécuter tout ce qui se bloque avec strace, voir quel est le dernier exécutable mentionné et essayez de voir si c'est le coupable.