Menu

relative path + debugger problem

Help
Nik Henri
2015-01-20
2015-01-21
  • Nik Henri

    Nik Henri - 2015-01-20

    Hi,
    first, thank for helping me.
    my issue is simple, it's seem that the debugger don't see break point in other module if I use relative path.


    Exemple :
    use lib "C:/USERS/nikhen1/workspace/Test/testNik"; #will see the break point in perl file (work)

    use lib "./testNik"; #will run correctly, but breakpoint don't work

    use lib "C:/USERS/NIKHEN1/WORKSPACE/TEST/TESTNIK" #will run correctly, but breakpoint don't work


    is there a solution for this ?

     

    Last edit: Nik Henri 2015-01-20
    • Jan Ploski

      Jan Ploski - 2015-01-20

      I suggest that you don't rely on any hardcoded "use lib", relative or absolute, at all. Instead add the include paths to "Perl Include Path" in project's properties (which will cause those paths to be passed to perl through the -I option on the command line).

      The mess with missed breakpoints is caused by Eclipse and Perl runtime referring to the same files using subtly different paths, despite great attempts at normalization (computing an absolute path). In effect either the breakpoint is not set at all because the event of loading the module is not detected or the breakpoint is set, but when it's hit is is ignored because reported and expected file path doesn't match.

       
  • Nik Henri

    Nik Henri - 2015-01-21

    Thank you for your suggestion,
    It's impossible/very hard for me to do that, there is too much path to add in different project and everyone will have to do this, so this solution is not applicable for me :(

     
    • Jan Ploski

      Jan Ploski - 2015-01-21

      Perhaps you can get some clues if you select Window > Preferences > Perl EPIC > Enable debugger console (experimental) and then watch the communication between Eclipse frontend and perl -d during a debug session (by clicking on the respective in the Debug view, which will then display exchanged commands and responses in Console). You could try experimenting with different forms of path (slashes/backslashes, with/without the dot prefix, case-sensitive/insensitive) or you could try converting the relative path to absolute programatically within the "use lib" statement.

       

Log in to post a comment.