Menu

#401 can't display variables if any subroutines are present

open
Debugger (177)
7
2014-08-16
2007-05-31
Jack Tanner
No

Using Eclipse 3.2.2 on FC6. Start stepping through the code below, and when you step inside arf, the variable view changes to "An error occurred while dumping array content; contents of the Variables view may become invalid".

my $foo = 'bar';

arf($foo);

sub arf {
my $bar = shift;
print $bar;
}

(By the way, that error message is missing a period.)

Discussion

1 2 3 4 > >> (Page 1 of 4)
  • Jack Tanner

    Jack Tanner - 2007-05-31

    Logged In: YES
    user_id=661682
    Originator: YES

    I forgot to say that I'm using EPIC 0.6.5, and this used to work fine in earlier versions.

     
  • Jack Tanner

    Jack Tanner - 2007-06-01

    Logged In: YES
    user_id=661682
    Originator: YES

    This bug is worse than I thought. If your code calls a subroutine of your own, even if you skip over the subroutine, the debugger will terminate with an IOException. (Pop-up from PerlDebugJob, message "An IOException occurred while executing debugger command".)

    To reproduce, step through this code, and step over the call to arf().

    I see there were recent changes to the debugger, so this is probably related, and I'm reassigning accordingly. My apologies if that's incorrect.

    my $foo = 'bar';

    arf($foo);
    $foo = 'baz';

    sub arf {
    my $bar = shift;
    print $bar;
    }

     
  • Jack Tanner

    Jack Tanner - 2007-06-01
    • priority: 5 --> 7
    • assigned_to: stephan_ruehl --> jploski
    • summary: can't display variables in subroutine --> can't display variables if any subroutines are present
     
  • Jan Ploski

    Jan Ploski - 2007-06-02

    Logged In: YES
    user_id=86907
    Originator: NO

    You are right that there were significant changes to the debugger in 0.6.5. However, I cannot reproduce this bug on Debian. Maybe you could provide the contents of the debugger console?

     
  • Nobody/Anonymous

    Logged In: NO

    Duh! Sorry, I should've turned on the debugger console right away. This may be the culprit:

    Unmatched right curly bracket at (eval 48)[/usr/lib/perl5/5.8.8/perl5db.pl:628] line 5, at end of line
    syntax error at (eval 48)[/usr/lib/perl5/5.8.8/perl5db.pl:628] line 5, near ";
    }"

    Follow-up at https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=242249

     
  • Jan Ploski

    Jan Ploski - 2007-06-02

    Logged In: YES
    user_id=86907
    Originator: NO

    Given that you mention the right curly bracket thing, it may be related to a bug in perl5db.pl discussed in August 2006. Link to fix: http://sourceforge.net/forum/message.php?msg_id=3872285

     
  • Nobody/Anonymous

    Logged In: NO

    OK, I've upgraded to 0.6.6, and it seems like you're now shipping an internal perl5db.pl, so that cause should be out.

    See if you can reproduce the bug by stepping through this.

    my $foo = 'bar';

    my $ref = arf();
    print "$foo\n";

    sub arf {
    my %h = (
    arf => 1,
    scarf => 2
    );

    return \%h;
    }

     
  • Jack Tanner

    Jack Tanner - 2007-06-05

    Logged In: YES
    user_id=661682
    Originator: YES

    I thought I'd do something clever and modify the internal perl5db.pl, but it seems like it gets overwritten with every debug run. Where does the master perl5db.pl live that is used to overwrite?

     
  • Jan Ploski

    Jan Ploski - 2007-06-05

    Logged In: YES
    user_id=86907
    Originator: NO

    The master perl5db.pl is taken from your system (it is located by inspecting @INC - it likely resides somewhere in /usr/share/perl/5.8 or the like). Therefore, previous remarks about a possible bug in it remain valid. EPIC (unfortunately!) has to patch up perl5db.pl by inserting an invocation to epic_breakpoints.pm. This patching up is done on each launch.

     
  • Jack Tanner

    Jack Tanner - 2007-06-05

    Logged In: YES
    user_id=661682
    Originator: YES

    I made the change in the system perl5db.pl, it propagated to EPIC's copy, *but it still choked with the same error*.

     
1 2 3 4 > >> (Page 1 of 4)

Log in to post a comment.