#350 Debugger is incompatible with Perl 5.6.x

open
Stephan Ruehl
Debugger (177)
5
2006-12-08
2006-12-06
Anonymous
No

I am running Eclipse version 3.2.1 on a windows XP hom edition PC using EPIC 0.4.22 and ActiveState Perl 5.6.1
There were no problems when I installed both Eclipse and the EPIC plugin.
Everything seems to be working fine, but when I try to debug even the simplest Perl script I get an error window at every step going through the script. The error message: Error Parsing Debugger Variables
The console view mentions: Use of uninitialized value in list assignment at /workspace/.metadata/.plugins/org.epic.debug/dumpvar_epic.pm line 453.

Does anyone have an idea what causes this problem?

Discussion

  • Jan Ploski
    Jan Ploski
    2006-12-08

    Logged In: YES
    user_id=86907
    Originator: NO

    1. Upgrade to the newest version of EPIC
    2. Toggle the option "Enable debugger console" in EPIC preferences. This will cause another item to appear during debugging in the Debug view. When you click on it, a log of the communication going on between EPIC and the Perl debugger will be displayed in the Console view. Report the contents of this log here for further examination.

     
  • lgulikers
    lgulikers
    2006-12-08

    Logged In: YES
    user_id=1662482
    Originator: NO

    Hello jploski,

    Thanks for your quick reply.

    Here is what I presume you asked for.
    I've upgraded EPIC to version 0.4.24 (I hope that that is new enough) and in case may wonder what the version is of the padwalker module that I'm using. It's PadWalker 0.10
    Here is a dump of messages that appear in the extra Console view.

    Thanks, Leon

    Loading DB routines from perl5db.pl version 1.07
    Editor support available.

    Enter h or `h h' for help, or `perldoc perldebug' for more help.

    main::(C:/Documents and Settings/Leon/workspace/Clieop03/checkclieop.pl:1):
    1: $syntax = "\nCheckClieOp.pl, Versie 1.00 voor Windows (command line) \n";
    DB<1> printf $DB::OUT "%vd", $^V;

    5.6.1
    DB<2> O frame=2

    frame = '2'
    DB<3> T

    DB<4> .

    main::(C:/Documents and Settings/Leon/workspace/Clieop03/checkclieop.pl:1):
    1: $syntax = "\nCheckClieOp.pl, Versie 1.00 voor Windows (command line) \n";
    DB<5> .

    main::(C:/Documents and Settings/Leon/workspace/Clieop03/checkclieop.pl:1):
    1: $syntax = "\nCheckClieOp.pl, Versie 1.00 voor Windows (command line) \n";
    DB<6> O frame=0

    frame = '0'
    DB<7> ;{eval { require PadWalker; PadWalker->VERSION(0.08) }or print $DB::OUT ("PadWalker module not found - please install\n");do 'dumpvar_epic.pm' unless defined &dumpvar_epic::dumpvar_epic;defined &dumpvar_epic::dumpvar_epic or print $DB::OUT "dumpvar_epic.pm not available.\n";my $h = eval { PadWalker::peek_my(2) };my @vars = split (' ','');$@ and $@ =~ s/ at .*//, print $DB::OUT ($@);my $savout = select($DB::OUT);dumpvar_epic::dumplex($_,$h->{$_},defined $option{dumpDepth} ? $option{dumpDepth} : -1,@vars) for sort keys %$h;print "E";select($savout);};

    E
    DB<8> O frame=0

    frame = '0'
    DB<9> ;{do 'dumpvar_epic.pm' unless defined &dumpvar_epic::dumpvar_epic;defined &dumpvar_epic::dumpvar_epic or print $DB::OUT "dumpvar_epic.pm not available.\n";my $savout = select($DB::OUT);dumpvar_epic::dumpvar_epic();select($savout);};

    00000003$^A0000000000000003$^D00000001000000003$^E0000004aEr is geprobeerd een bewerking uit te voeren op iets anders dan een socket00000003$^H0000000325600000003$^L00000001 00000003$^O00000007MSWin3200000003$^S00000001100000003$^V0000000300000003$^W0000000100000000e$^WARNING_BITS0000000c

     
  • Jan Ploski
    Jan Ploski
    2006-12-08

    Logged In: YES
    user_id=86907
    Originator: NO

    Did you see the error dialog appear right after you started the debugger and before you copied the console contents? If not, I would like to see the same console output after the error is reported. Also: can you post the script which you are using for testing? And: can you upgrade to Padwalker 1.0 (or whatever the newest version in the ActiveState ppm is)?

     
  • lgulikers
    lgulikers
    2006-12-08

    Logged In: YES
    user_id=1662482
    Originator: NO

    I created a very small script, just to be sure that nothing was wrong with the script.
    As I said even debugging a simple Perl script like:
    for (my $i = 0; $i < 10; $i++)
    {
    print "$i: Hello World!\n";
    sleep(1);
    }

    shows the same problem.
    In some scripts the Error window appears right after the first step (into or over)
    In other scripts like the one above the Error window appears right after I push the debug button.
    The latest version of Padwalker I could find on the Activestate repository is 0.10 (for Perl 5.6.1)

     
  • Jan Ploski
    Jan Ploski
    2006-12-08

    Logged In: YES
    user_id=86907
    Originator: NO

    Please post the debugger console output accumulated up to the point after the error is shown.
    Are you using the outdated 5.6.1 version of Perl intentionally?

     
  • lgulikers
    lgulikers
    2006-12-08

    Logged In: YES
    user_id=1662482
    Originator: NO

    This is the complete message after I start the debug button.
    There is no good reason for sticking to 5.6.1 It works fine up till now, so I guess lazyness is the only good answer for not upgrading.

    ===================================
    Loading DB routines from perl5db.pl version 1.07
    Editor support available.

    Enter h or `h h' for help, or `perldoc perldebug' for more help.

    main::(C:/Documents and Settings/Leon/workspace/Hello world/HelloWorld.pl:2):
    2: for (my $i = 0; $i < 10; $i++)
    3: {
    DB<1> printf $DB::OUT "%vd", $^V;

    5.6.1
    DB<2> O frame=2

    frame = '2'
    DB<3> T

    DB<4> .

    main::(C:/Documents and Settings/Leon/workspace/Hello world/HelloWorld.pl:2):
    2: for (my $i = 0; $i < 10; $i++)
    3: {
    DB<5> .

    main::(C:/Documents and Settings/Leon/workspace/Hello world/HelloWorld.pl:2):
    2: for (my $i = 0; $i < 10; $i++)
    3: {
    DB<6> O frame=0

    frame = '0'
    DB<7> ;{eval { require PadWalker; PadWalker->VERSION(0.08) }or print $DB::OUT ("PadWalker module not found - please install\n");do 'dumpvar_epic.pm' unless defined &dumpvar_epic::dumpvar_epic;defined &dumpvar_epic::dumpvar_epic or print $DB::OUT "dumpvar_epic.pm not available.\n";my $h = eval { PadWalker::peek_my(2) };my @vars = split (' ','');$@ and $@ =~ s/ at .*//, print $DB::OUT ($@);my $savout = select($DB::OUT);dumpvar_epic::dumplex($_,$h->{$_},defined $option{dumpDepth} ? $option{dumpDepth} : -1,@vars) for sort keys %$h;print "E";select($savout);};

    E
    DB<8> O frame=0

    frame = '0'
    DB<9> ;{do 'dumpvar_epic.pm' unless defined &dumpvar_epic::dumpvar_epic;defined &dumpvar_epic::dumpvar_epic or print $DB::OUT "dumpvar_epic.pm not available.\n";my $savout = select($DB::OUT);dumpvar_epic::dumpvar_epic();select($savout);};

    00000003$^A0000000000000003$^D00000001000000003$^E0000004aEr is geprobeerd een bewerking uit te voeren op iets anders dan een socket00000003$^H0000000325600000003$^L00000001 00000003$^O00000007MSWin3200000003$^S00000001100000003$^V0000000300000003$^W0000000100000000e$^WARNING_BITS0000000c

     
  • Jan Ploski
    Jan Ploski
    2006-12-08

    • summary: Error Parsing Debugger Variables --> Debugger is incompatible with Perl 5.6.x
     
  • Jan Ploski
    Jan Ploski
    2006-12-08

    Logged In: YES
    user_id=86907
    Originator: NO

    It is very likely that the problem is caused by Perl 5.6.x. Please upgrade to 5.8.x.

     
  • lgulikers
    lgulikers
    2006-12-11

    Logged In: YES
    user_id=1662482
    Originator: NO

    Yes, that's what causing the problem.
    Thanks for your help.
    Still have to get used to working with all the views etcetera but debugging seems to be working fine.