Bug found in Open Perl IDE perl5db.pl module
- From: mattsteel <matteo_vitturi@xxxxxxxxxxx>
- Date: Wed, 30 Jul 2008 02:21:26 -0700 (PDT)
Hello all.
I'm using this IDE since months, and have to say this is a good IDE,
light, simple, easy to use, but not bug-free ;-)
I found a subtle bug in perl5db.pl module (that is shipped with the
IDE for Windows available from SurceForge);
Trying this piece of script:
my $code = sub { print "hello\n" } ;
print "Let's call $code\n";
$code->();
print "Done.\n";
During a normal debug session, moving the mouse over the variable
$code (that is a code-reference i.e. ref($code) returns CODE), the IDE
replies with an “<undef>” which is not true. The same thing happens
listing $code in the “variable” watch-window.
I tried to fix it and patched the perl5db.pl module to handle this
case, so the IDE replies something like
“$code: code = 0x1a81c40”.
Since the module source is more than 700 lines long, I think useful
giving here the four chunks I added: I simply added another "elsif"
case just before the ending "else", so you should be able to insert
these few lines directly in your dbTemplate.txt in the correct
position.
#within SizeOfDerefValue sub:
} elsif ($refType eq 'CODE') {
return length($reference);
#within ShortEval sub:
} elsif ($refType eq 'CODE') {
$reference =~ /\((.*)\)/;
return "code = $1";
#within LongEval sub:
} elsif ($refType eq 'CODE') {
$reference =~ /\((.*)\)/;
$retValue = "code = $1";
#within ShowDerefValues sub:
} elsif ($refType eq 'CODE') {
$type = "code";
$reference =~ /\((.*)\)/;
$value = "$1";
I hope this helps.
Regards.
.
- Follow-Ups:
- Re: Bug found in Open Perl IDE perl5db.pl module
- From: smallpond
- Re: Bug found in Open Perl IDE perl5db.pl module
- Prev by Date: Re: Extracting bits out of huge numbers
- Next by Date: Re: Is there any module to get the cdrom infomation?
- Previous by thread: FAQ 4.34 How do I extract selected columns from a string?
- Next by thread: Re: Bug found in Open Perl IDE perl5db.pl module
- Index(es):
Relevant Pages
|