Debugger Chokes on Objects

bugfood wrote on Tue Mar 29 01:46:32 MEST 2005:
I get the following error when I try to debug an object:

Error Parsing Debugger Variables
  +++++++Error Parsing Vars++++++
  +++++++Error Parsing Vars++++++

This occurred with both the following versions of Eclipse:

Version: 3.0.1
Build id: 200409161125


Version: 3.0.2
Build id: 200503110845

I have:
    ActiveState Perl
    EPIC 0.3.0 (the newest so far as I can tell)

I have installed PadWalker from the EPIC site.

Here is some simple test code to demonstrate the problem:

package Obj;
use warnings;
use strict;

sub new() {
	my $caller = shift();
	my $class = ref($caller) || $caller;
	my $self = {};
	bless($self, $class);
	return $self;


use Obj;
use warnings;
use strict;

my $obj = Obj->new();

When I launch in the debugger, it starts at the last line. I click
step into. The source view switches to display The first line of
sub new is highlighted, and the error dialog appears. The error reappears
every time I click step into.

There is no problem if I step over the instantiation of the object.
ericryoung wrote on Fri Apr  1 17:22:36 MEST 2005:
A bit of a me too, with a bit more information.  Can anyone help with this?

My setup, Windows XP, Eclipse 3.0.2, EPIC 0.3.10, Perl = cygwin 5.8.6

It appears that this is related to Padwalker and packages.  I have test
code that runs OK without Padwalker installed but crashes the debugging
processes (meaning the perl script stops running) when Padwalker is installed.

It appears Padwalker is having problems getting to locally scoped variables
within the non-default packages (or something like that).

Here's my test code:

package TestModule;
use strict;
use warnings;
use Exporter();
our @ISA = qw (Exporter);
our @EXPORT = qw( ModuleSubroutine );
our @EXPORT_OK =  qw(  );
sub ModuleSubroutine
	my $input = shift;
	print "Our Input was: $input\n";


use TestModule;
print "This is a test\n";

testmainsub("fun fun fun");
print "Then we have this line, to follow\n";
sub testmainsub
	my $a = shift;
	print "A main subroutine with locally scoped var with value: $a\n";

In the error condition, the 'testmainsub' seems to work fine but ModuleSubroutine
will die on the first line of the sub.

When I remove Padwalker from my perl install,  I get the annoying 'install
padwalker' message, but it does run to the end.

Note: The above is an archived snapshot of a forum thread. Use the original thread at to post comments.