Menu

#565 Debugger doesn't stop at breakpoints set in package files

v0.6.x
open
Debugger (177)
5
2009-10-08
2009-10-08
No

Hi,

as there are still open items on this topic, I just want to ask, wether the workaround posted in some other forum quita a while ago is available somewhere for download. The workaround mentioned there was to patch the perl5db.pl file to handle filenames as lowercase. Or is there any other known relief?

I'm using Eclipse Java EE IDE for Web Developers, Eclipse Platform 3.5.1, Build id: 20090920-1017
E-P-I-C 0.6.35
active state perl 5.10.1 Build 1006 [291086]
Windows XP (v. 5.1.2600)

Padwalker, Perl::Critic and perltidy are installed. PERLLIB/PERL5LIB are both set properly

The debugger works as expected with breakpoints set in the main file (.pl), while setting a breakpoint in a module (.pm, CamelCase) somewhere in the lib tree linked in via 'use' does not result in stopping at that breakpoint. The breakpoints are all listed in the breakpoints view with correct case and the 'go to file' works.

Best regards
Franz-Josef

Discussion

  • Jan Ploski

    Jan Ploski - 2010-04-04

    This sort of problem usually happens because of mismatches between how paths are expressed by EPIC and the native perl debugger. You should probably debug it for yourself as follows: Import the plug-in org.epic.debug into workspace, then create a launch configuration of type "Eclipse Application". Debug this launch configuration and within the hosted workbench create your project in which the EPIC debugger doesn't stop at breakpoints. Before each attempt edit the file epic_breakpoints.pm in the org.epic.debug project in the host workbench. Insert some diagnostic statements (e.g. log values of variables to a file), particularly in the subroutine _postponed, which is supposed to inject configured breakpoints whenever a .pm is loaded.

     
  • Anonymous

    Anonymous - 2010-06-02

    I tried debugging as you describe, the error I'm getting is:

    Warning:

    An unexpected exception occurred while creating a link to Undefined subroutine &epic_breakpoints::get_abs_path called at (eval 34)[C:/Perl/lib/perl5db.pl:638] line 7.

    org.eclipse.core.internal.resources.ResourceException: ':get_abs_path%20called%20at%20(eval%2034)%5BC:/Perl/lib' is not a valid location. The location is relative to undefined workspace path variable 'get_abs_path called at (eval 34)[C:'.
    at org.eclipse.core.internal.resources.Resource.assertLinkRequirements(Resource.java:162)
    at org.eclipse.core.internal.resources.Resource.createLink(Resource.java:594)
    at org.eclipse.core.internal.resources.Resource.createLink(Resource.java:576)
    at org.epic.core.util.FileUtilities.createFolderLink(FileUtilities.java:90)
    at org.epic.core.util.FileUtilities.getFileEditorInput(FileUtilities.java:27)
    at org.epic.debug.ui.DebugModelPresentation.getEditorInput(DebugModelPresentation.java:160)
    at org.eclipse.debug.internal.ui.LazyModelPresentation.getEditorInput(LazyModelPresentation.java:234)
    at org.eclipse.debug.internal.ui.sourcelookup.SourceLookupFacility.lookup(SourceLookupFacility.java:175)
    at org.eclipse.debug.ui.DebugUITools.lookupSource(DebugUITools.java:777)
    at org.eclipse.debug.internal.ui.elements.adapters.StackFrameSourceDisplayAdapter$SourceLookupJob.run(StackFrameSourceDisplayAdapter.java:109)
    at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)

    Debugger Error:

    java.io.IOException: The filename, directory name, or volume label syntax is incorrect
    at java.io.WinNTFileSystem.canonicalize0(Native Method)
    at java.io.Win32FileSystem.canonicalize(Unknown Source)
    at java.io.File.getCanonicalPath(Unknown Source)
    at org.epic.debug.db.BreakpointMap.canonPath(BreakpointMap.java:132)
    at org.epic.debug.db.BreakpointMap.getBreakpoints(BreakpointMap.java:58)
    at org.epic.debug.db.PerlThreadBreakpoints.installPendingBreakpoints(PerlThreadBreakpoints.java:232)
    at org.epic.debug.db.PerlDebugThread.suspended(PerlDebugThread.java:388)
    at org.epic.debug.db.PerlDebugThread.debugCommandFinished(PerlDebugThread.java:291)
    at org.epic.debug.db.DebugCommand.run(DebugCommand.java:62)
    at org.epic.debug.db.PerlDebugJob.run(PerlDebugJob.java:42)
    at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)

     

    Last edit: Anonymous 2014-01-17
  • Nobody/Anonymous

    seems it tries to run perl script

    ;{
    my $file = <<'EOT';
    ../lib/MyPackage.pm
    EOT

    epic_breakpoints::get_abs_path($file);
    };

    From
    public IPath getAbsDBPath(IPath relativeDBPath) throws CoreException{}

    but can't find epic_breakpoints::get_abs_path - do I need to add something to perl include path?

     

Log in to post a comment.