Debugger not parsing complex data structures

falconne wrote on Thu Mar 17 08:24:48 CET 2005:
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.

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