开发者

perl debugger freezes

开发者 https://www.devze.com 2023-01-03 08:39 出处:网络
First time perl user and I am trying to debug some script to follow project logic and of course syntax.

First time perl user and I am trying to debug some script to follow project logic and of course syntax. Using cygwin after entering at command line $

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

It hangs at the DB<1> line. I cannot enter anything at the prompt.

Is there a reason why this post is inappropriate? or how is this not clear?

This is the actual program code:

#!/usr/local/bin/perl
#
# Program to do the obvious
#
print 'Hello world.';       # Print a m开发者_如何学Cessage


I upgraded my cygwin installation at home and ran into a similar problem (though maybe not the exact same problem -- the perl debugger still responds to my input but does not display my input, and fubars my input even after I quit the debugger). In the meantime while I figure what is going on, my workaround is to fire up xemacs, launch a shell (M-x shell), and run the perl debugger from the emacs buffer.

If this works for you, then there is something funky going on with your cygwin terminal settings. If your debugger hangs even in an emacs buffer, then something else funky is going on but I have no idea what it could be.


Sorry for reviving this three-year-old question, but I believe to have been hit with the same problem, and to have found the solution.

In my case, perl -de0 invokes infocmp from ncurses, which hangs in a weird way (can't kill it). And infocmp seemed to be a victim of my Avast anti-virus which is listed under BLODA as affecting Cygwin. Disabling it resolved the issue -- see if you have any of the listed applications and try disabling it (perhaps also try safe mode).

Also, simply renaming infocmp.exe allowed perl -d to run normally. In the end I used this approach and left my Avast running.

It could also be a different executable that perl -d is starting -- try to run whatever hangs with strace, see what is the last executable mentioned and try to see if that is the culprit.

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号