Using Eclipse 3.2.2 on FC6. Start stepping through the code below, and when you step inside arf, the variable view changes to "An error occurred while dumping array content; contents of the Variables view may become invalid".
my $foo = 'bar';
arf($foo);
sub arf {
my $bar = shift;
print $bar;
}
(By the way, that error message is missing a period.)
Logged In: YES
user_id=661682
Originator: YES
I forgot to say that I'm using EPIC 0.6.5, and this used to work fine in earlier versions.
Logged In: YES
user_id=661682
Originator: YES
This bug is worse than I thought. If your code calls a subroutine of your own, even if you skip over the subroutine, the debugger will terminate with an IOException. (Pop-up from PerlDebugJob, message "An IOException occurred while executing debugger command".)
To reproduce, step through this code, and step over the call to arf().
I see there were recent changes to the debugger, so this is probably related, and I'm reassigning accordingly. My apologies if that's incorrect.
my $foo = 'bar';
arf($foo);
$foo = 'baz';
sub arf {
my $bar = shift;
print $bar;
}
Logged In: YES
user_id=86907
Originator: NO
You are right that there were significant changes to the debugger in 0.6.5. However, I cannot reproduce this bug on Debian. Maybe you could provide the contents of the debugger console?
Logged In: NO
Duh! Sorry, I should've turned on the debugger console right away. This may be the culprit:
Unmatched right curly bracket at (eval 48)[/usr/lib/perl5/5.8.8/perl5db.pl:628] line 5, at end of line
syntax error at (eval 48)[/usr/lib/perl5/5.8.8/perl5db.pl:628] line 5, near ";
}"
Follow-up at https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=242249
Logged In: YES
user_id=86907
Originator: NO
Given that you mention the right curly bracket thing, it may be related to a bug in perl5db.pl discussed in August 2006. Link to fix: http://sourceforge.net/forum/message.php?msg_id=3872285
Logged In: NO
OK, I've upgraded to 0.6.6, and it seems like you're now shipping an internal perl5db.pl, so that cause should be out.
See if you can reproduce the bug by stepping through this.
my $foo = 'bar';
my $ref = arf();
print "$foo\n";
sub arf {
my %h = (
arf => 1,
scarf => 2
);
return \%h;
}
Logged In: YES
user_id=661682
Originator: YES
I thought I'd do something clever and modify the internal perl5db.pl, but it seems like it gets overwritten with every debug run. Where does the master perl5db.pl live that is used to overwrite?
Logged In: YES
user_id=86907
Originator: NO
The master perl5db.pl is taken from your system (it is located by inspecting @INC - it likely resides somewhere in /usr/share/perl/5.8 or the like). Therefore, previous remarks about a possible bug in it remain valid. EPIC (unfortunately!) has to patch up perl5db.pl by inserting an invocation to epic_breakpoints.pm. This patching up is done on each launch.
Logged In: YES
user_id=661682
Originator: YES
I made the change in the system perl5db.pl, it propagated to EPIC's copy, *but it still choked with the same error*.