Eclispe + Epic + PadWalker + OSX = trouble

Help
Anshu
2012-02-02
2013-05-20
  • Anshu
    Anshu
    2012-02-02

    OS Version - OSX 10.6.
    64 bit 5.10 version of Perl.

    I am having a hard time getting eclipse-epic to display local variables while debugging. I installed Padwalker (through macports and then tried again via CPAN. Looks like is installed properly.)

    I checked my ENV to check the perl related settings. Here's what it showed:
    'VERSIONER_PERL_VERSION' => '5.10.0'
    'VERSIONER_PERL_PREFER_32_BIT' => 'no',

    Then I put this in test.pl to see if Padwalker is being detected:

    1
    2
    3
    4
    #!/usr/bin/perl -l
    print "Check PadWalker Version";
    require PadWalker;
    print eval { PadWalker->VERSION};
    

    That gives the output of:

    Check PadWalker Version
    1.92

    Meaning PadWalker 1.92 is installed on the system. Which is what my CPAN shell also tells me when I try to query PadWalker.

    Now when I try to do single-stepping while debugging,  it just shows this:

    $^RE_TRIE_MAXBUF 65536

    no local variables are shown.

    What do I need to do to get PadWalker working?

     
  • Jan Ploski
    Jan Ploski
    2012-02-02

    Have you selected "Show Local Variables" from the context menu of the Variables view (and possibly restarted the debug session thereafter)? http://www.epic-ide.org/guide/images/variables_view.gif
    Are you using the most recent 'testing' version of EPIC?
    Does the output of PadWalker version you quoted come when you run the script in Eclipse or from command line shell?

     
  • Jan Ploski
    Jan Ploski
    2012-02-02

    Oh, one more question, you are aware that "local variables" refers to lexical variables declared with 'my', aren't you?

     
  • Anshu
    Anshu
    2012-02-03

    @jpolski. Thanks for suggestions. I am looking at the  "Show Local Variables" from the context menu, exactly as you showed in the gif (the only difference being, that gif shows the windows version of the eclipse. I am running OSX version of Eclipse - Indigo).

    Question: "one more question, you are aware that "local variables" refers to lexical variables declared with 'my', aren't you?"
    Answer: - Yes. I am declaring my local variables with "my" (I add #use strict .. it won't let me use local vars without my)

    Question: "Does the output of PadWalker version you quoted come when you run the script in Eclipse or from command line shell?"
    Answer: - The result (1.92) is same, whether I run from Eclipse (it displays inside Eclipse console) or from command line shell.

    Question: Are you using the most recent 'testing' version of EPIC?
    Answer: I tried with two EPIC versions:
    a) http://e-p-i-c.sf.net/updates (also called the stable version) . version number - 0.5.46
    b) http://e-p-i-c.sf.net/updates/testing  - version number- 0.6.41

    with case a - I see only "$^RE_TRIE_MAXBUF 65536" displayed in the "Local Variable" area (like in the gif you attached). I am doing single stepping and I have single stepped past the first line with local variable ($my $url = 'http://www.google.com';). But the local variable area still shows only that MAXBUF thing I mentioned before.

    with case b - I see absolutely nothing in the local variable area. I am doing single stepping and I have single stepped past the first line with local variable ($my $url = 'http://www.google.com';).

    I have noticed that windows users have faced issues with getting debugger working and are advised to run the EPIC-testing version. I am running OSX. Anyways, I tried both, EPIC testing and updates versions, as on the EPIC site here

     
  • Anshu
    Anshu
    2012-02-03

    I noticed that when I am using "testing" version of EPIC (case b of my earlier post), and turn on the "Show Local Variables" from variables pane of the debugger, the debugger breaks, the whole local variables pane becomes ghosted with the message "An error occurred while retrieving variables from the debugger process". I am not able to do any  single stepping at all.

    When I am using the updates version of EPIC (case a of my earlier post), and turn on the "Show Local Variables" from variables pane of the debugger, the debugger still works. I am able to single step. But it shows no local variables.

     
  • Jan Ploski
    Jan Ploski
    2012-02-05

    Maybe the error that happens in 'testing' can be found in workspace/metadata/.log file - it would be good to see it. BTW, I'm also using PadWalker 1.92 with EPIC testing on Linux, and it works.

     
  • Anshu
    Anshu
    2012-02-14

    thanks jploski for response and apologies for a late reply. Had almost given up on Eclipse+EPIC but have continued to try to fix it.
    I tried to debug this simple script.

    1
    2
    3
    4
    5
    6
    #!/usr/bin/perl -l
    use strict;
    use warnings;
    my $url = "hgf";
    my $ssd = 56;
    print "hello world \n";
    

    I had a breakpoint set at "my $url". That's where the debugger would crash every time, with the variables pane showing this message "An error occured while retrieving variables from the debugger process"

    Here's my .log file. If you will notice, it has multiple internal errors due to PerlLineBreakpoint.

    !SESSION 2012-02-09 20:28:29.676 -----------------------------------------------
    eclipse.buildId=M20110909-1335
    java.version=1.6.0_29
    java.vendor=Apple Inc.
    BootLoader constants: OS=macosx, ARCH=x86_64, WS=cocoa, NL=en_US
    Framework arguments:  -keyring /Users/Golden/.eclipse_keyring -showlocation
    Command-line arguments:  -os macosx -ws cocoa -arch x86_64 -keyring /Users/Golden/.eclipse_keyring -showlocation
    !ENTRY org.eclipse.core.net 1 0 2012-02-09 20:28:48.467
    !MESSAGE System property http.nonProxyHosts has been set to local|*.local|169.254/16|*.169.254/16 by an external source. This value will be overwritten using the values from the preferences
    !ENTRY org.eclipse.core.jobs 4 2 2012-02-09 20:31:19.428
    !MESSAGE An internal error occurred during: "Toggle Line Breakpoint (epic)".
    !STACK 0
    java.lang.NullPointerException
        at org.epic.debug.PerlLineBreakpoint$1.run(PerlLineBreakpoint.java:82)
        at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2344)
        at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2326)
        at org.epic.debug.PerlLineBreakpoint.run(PerlLineBreakpoint.java:143)
        at org.epic.debug.PerlLineBreakpoint.createPerlLineBreakpoint(PerlLineBreakpoint.java:91)
        at org.epic.debug.PerlLineBreakpoint.<init>(PerlLineBreakpoint.java:53)
        at org.epic.debug.PerlLineBreakpoint.<init>(PerlLineBreakpoint.java:45)
        at org.epic.debug.ui.action.ToggleBreakpointAdapter.createLineBreakpoint(ToggleBreakpointAdapter.java:203)
        at org.epic.debug.ui.action.ToggleBreakpointAdapter.access$1(ToggleBreakpointAdapter.java:174)
        at org.epic.debug.ui.action.ToggleBreakpointAdapter$1.run(ToggleBreakpointAdapter.java:118)
        at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
    !ENTRY org.eclipse.core.jobs 4 2 2012-02-09 20:31:30.905
    !MESSAGE An internal error occurred during: "Toggle Line Breakpoint (epic)".
    !STACK 0
    java.lang.NullPointerException
        at org.epic.debug.PerlLineBreakpoint$1.run(PerlLineBreakpoint.java:82)
        at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2344)
        at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2326)
        at org.epic.debug.PerlLineBreakpoint.run(PerlLineBreakpoint.java:143)
        at org.epic.debug.PerlLineBreakpoint.createPerlLineBreakpoint(PerlLineBreakpoint.java:91)
        at org.epic.debug.PerlLineBreakpoint.<init>(PerlLineBreakpoint.java:53)
        at org.epic.debug.PerlLineBreakpoint.<init>(PerlLineBreakpoint.java:45)
        at org.epic.debug.ui.action.ToggleBreakpointAdapter.createLineBreakpoint(ToggleBreakpointAdapter.java:203)
        at org.epic.debug.ui.action.ToggleBreakpointAdapter.access$1(ToggleBreakpointAdapter.java:174)
        at org.epic.debug.ui.action.ToggleBreakpointAdapter$1.run(ToggleBreakpointAdapter.java:118)
        at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
    !SESSION 2012-02-14 12:46:26.574 -----------------------------------------------
    eclipse.buildId=M20110909-1335
    java.version=1.6.0_29
    java.vendor=Apple Inc.
    BootLoader constants: OS=macosx, ARCH=x86_64, WS=cocoa, NL=en_US
    Framework arguments:  -keyring /Users/Golden/.eclipse_keyring -showlocation
    Command-line arguments:  -os macosx -ws cocoa -arch x86_64 -keyring /Users/Golden/.eclipse_keyring -showlocation
    !ENTRY org.eclipse.core.net 1 0 2012-02-14 12:46:44.785
    !MESSAGE System property http.nonProxyHosts has been set to local|*.local|169.254/16|*.169.254/16 by an external source. This value will be overwritten using the values from the preferences
    !ENTRY org.eclipse.ui 4 0 2012-02-14 12:47:17.549
    !MESSAGE Unhandled event loop exception
    !STACK 0
    java.lang.ClassCastException: org.eclipse.ui.ide.FileStoreEditorInput cannot be cast to org.eclipse.ui.part.FileEditorInput
        at org.epic.debug.LaunchShortcut.launch(LaunchShortcut.java:111)
        at org.eclipse.debug.internal.ui.launchConfigurations.LaunchShortcutExtension.launch(LaunchShortcutExtension.java:424)
        at org.eclipse.debug.internal.ui.actions.LaunchShortcutAction.run(LaunchShortcutAction.java:70)
        at org.eclipse.debug.internal.ui.actions.LaunchShortcutAction.runWithEvent(LaunchShortcutAction.java:121)
        at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:584)
        at org.eclipse.jface.action.ActionContributionItem.access$2(ActionContributionItem.java:501)
        at org.eclipse.jface.action.ActionContributionItem$5.handleEvent(ActionContributionItem.java:411)
        at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
        at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4128)
        at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1457)
        at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1480)
        at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1465)
        at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:1270)
        at org.eclipse.jface.action.ActionContributionItem$9.handleEvent(ActionContributionItem.java:1284)
        at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
        at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4128)
        at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1457)
        at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1480)
        at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1465)
        at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:1270)
        at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3974)
        at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3613)
        at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2696)
        at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2660)
        at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2494)
        at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:674)
        at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
        at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:667)
        at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
        at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:123)
        at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
        at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
        at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
        at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:344)
        at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:622)
        at org.eclipse.equinox.launcher.Main.basicRun(Main.java:577)
        at org.eclipse.equinox.launcher.Main.run(Main.java:1410)
    !SESSION 2012-02-14 12:55:49.457 -----------------------------------------------
    eclipse.buildId=M20110909-1335
    java.version=1.6.0_29
    java.vendor=Apple Inc.
    BootLoader constants: OS=macosx, ARCH=x86_64, WS=cocoa, NL=en_US
    Framework arguments:  -keyring /Users/Golden/.eclipse_keyring -showlocation
    Command-line arguments:  -os macosx -ws cocoa -arch x86_64 -keyring /Users/Golden/.eclipse_keyring -showlocation
    !ENTRY org.eclipse.core.net 1 0 2012-02-14 12:55:57.140
    !MESSAGE System property http.nonProxyHosts has been set to local|*.local|169.254/16|*.169.254/16 by an external source. This value will be overwritten using the values from the preferences
    !SESSION 2012-02-14 13:03:50.085 -----------------------------------------------
    eclipse.buildId=M20110909-1335
    java.version=1.6.0_29
    java.vendor=Apple Inc.
    BootLoader constants: OS=macosx, ARCH=x86_64, WS=cocoa, NL=en_US
    Framework arguments:  -keyring /Users/Golden/.eclipse_keyring -showlocation
    Command-line arguments:  -os macosx -ws cocoa -arch x86_64 -keyring /Users/Golden/.eclipse_keyring -showlocation
    !ENTRY org.eclipse.core.net 1 0 2012-02-14 13:03:57.673
    !MESSAGE System property http.nonProxyHosts has been set to local|*.local|169.254/16|*.169.254/16 by an external source. This value will be overwritten using the values from the preferences