|
Posted by smallpond on July 30, 2008, 1:16 pm
Please log in for more thread options
show/hide quoted text
> 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 =3D 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 =93<undef>=94 which is not true. The same thing happens
> listing $code in the =93variable=94 watch-window.
> I tried to fix it and patched the perl5db.pl module to handle this
> case, so the IDE replies something like
> =93$code: code =3D 0x1a81c40=94.
> 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 =3D~ /\((.*)\)/;
> return "code =3D $1";
> #within LongEval sub:
> } elsif ($refType eq 'CODE') {
> $reference =3D~ /\((.*)\)/;
> $retValue =3D "code =3D $1";
> #within ShowDerefValues sub:
> } elsif ($refType eq 'CODE') {
> $type =3D "code";
> $reference =3D~ /\((.*)\)/;
> $value =3D "$1";
> I hope this helps.
> Regards.
You might want to post this on Sourceforge if that's where the project
is located.
--S
|