IOException in debugger?

Help
2008-05-29
2013-05-20
  • GreggJensen
    GreggJensen
    2008-05-29

    I am trying to debug one of my scripts and I am not getting very far.  Any help would be appreciated.

    This is the first sample that throws up an IOException error:

    #!/usr/bin/perl

    use Getopt::Std;

    my $opts = {};
    #getopts('d:e:a:u:p:qgACMQLGUvh', $opts);
    getopts('d', $opts);
    exit;

    When I step through with the debugger, it bombs at the getopts('d', $opts);  Running this through the command line debugger works just fine.  Within eclipse using EPIC, I get the following output in a dialog popup:

    An IOException occurred while executing debugger command
    could not match re.IP_POS in {syntax error at (eval 19)[/home/gjensen/workspace/.metadata/.plugins/org.epic.debug/perl5db.pl:628] line 10, at EOF
    Missing right curly or square bracket at (eval 19)[/home/gjensen/workspace/.metadata/.plugins/org.epic.debug/perl5db.pl:628] line 12, at end of line

      DB<10> Unmatched right curly bracket at (eval 20)[/home/gjensen/workspace/.metadata/.plugins/org.epic.debug/perl5db.pl:628] line 9, at end of line
    syntax error at (eval 20)[/home/gjensen/workspace/.metadata/.plugins/org.epic.debug/perl5db.pl:628] line 9, near ";
    }"}

    Thoughts?

     
    • GreggJensen
      GreggJensen
      2008-05-29

      Sorry, I am using eclipse 3.3.2 on Linux (Ubuntu Hardy) with EPIC version 0.6.24

       
    • Jan Ploski
      Jan Ploski
      2008-05-29

      Search the forum for "Unmatched right curly bracket".

       
    • GreggJensen
      GreggJensen
      2008-05-30

      Thanks for the reply, but it looks like that section of code (in both the system wide perl5db.pl as well as the perl5db.pl mentioned in the error message) that is referenced by the patch in that other thread has already been changed.  But if this is the possible area where this error might originate, then I can start there with some debugging statements.

      For what it's worth, the code in my perl5db.pl looks like (which is a bit different then the patch in the other message):

              # Receive anything there is to receive.
              $stuff;
              my $stuff = '';
              my $buf;
              do {
                  $IN->recv( $buf = '', 2048 );   # XXX "what's wrong with sysread?"
                                                  # XXX Don't know. You tell me.
              } while length $buf and ($stuff .= $buf) !~ /\n/;

              # What we got.
              $stuff;

      In case there might something that jumps out...