Work at SourceForge, help us to make it a better place! We have an immediate need for a Support Technician in our San Francisco or Denver office.

Close

Debugger not parsing complex data structures

Help
Falconne
2005-03-17
2013-05-20
  • Falconne
    Falconne
    2005-03-17

    I'm just starting out with EPIC on Linux and having a few problems with the debugger. I've noticed a few similar threads, but they were all to do with versions of PadWalker  on ActivePerl, whereas my issue is in Linux and PadWalker appears to work, but EPIC doesn't like the way it's output is formatted.

    I have Eclipse Platform 3.0.1 using EPIC 0.3.0 and perl 5.8.5.

    The problem I have is with the display of complex variables (scalars display fine during the process, so it's not totally broke).

    If I try something like this:

    #!/usr/bin/perl

    use strict;
    use warnings;

    sub main
    {
    my %bar = (answer => 42, data => [2, 4, 6]);
    print "The answer is $bar{answer}\n";
    }
    main();

    When I step over the %bar assignment line, I get a popup saying "Error Parsing Debugger Variables". The terminal output shows (I have just taken the relevant bit:

    ---Waiting for Command (128--0) to finish----------------------------
    !!!!!!!!!!!!!!!!!!Command (128--0) finished!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    ############Cleanup Command (128--0)
    ############State isrunning false isfinished true

    Start 1+++++++++++++++++true
    line 4:1: expecting INDENT_END, found '      '
    line 4:11: expecting PAREN_CL, found '
    '
    line 6:7: expecting EOF, found '2'
    !!!!! Parse Error!!!!
    !ENTRY org.epic.debug.perldebugger.perl **Error** 0 Mar 17, 2005 20:09:55.779
    !MESSAGE Error Parsing Debugger Variables
    !STACK 0
    java.lang.Exception: *******************************
    *******************************
    +++++++Error Parsing Vars++++++
    *******************************
    *******************************
    %bar = (
       'answer' => 42
       'data' => ARRAY(0x83bf77c)
          0  2
          1  4
          2  6
    )
    -------------------------------
    -------------------------------
    +++++++Error Parsing Vars++++++
    -------------------------------
    -------------------------------

        at org.epic.debug.varparser.PerlVarParser.logParsError(PerlVarParser.java:196)
        at org.epic.debug.varparser.PerlVarParser.parseVars(PerlVarParser.java:163)
        at org.epic.debug.varparser.PerlVarParser.parseVars(PerlVarParser.java:127)
        at org.epic.debug.PerlDB.setVarList(PerlDB.java:1197)
        at org.epic.debug.PerlDB.access$4(PerlDB.java:1187)
        at org.epic.debug.PerlDB$VarUpdateThread.run(PerlDB.java:1587)

    So it looks like the debugger spits out the values ok, but it is not being parsed.

    Strangely, if I remove the subroutine and just have those two lines, I don't get any errors, but all that displays in the Variables window is "*DB::single"

    In case the formatting was important and my spaces get clobbered, I've pasted the data display on the terminal with spaces replaced by underscores:

    %bar_=_(
    ___'answer'_=>_42
    ___'data'_=>_ARRAY(0x83bf77c)
    ______0__2
    ______1__4
    ______2__6
    )

    Anyway, thanks in advance for any help.