Skip to content

pydev debugger: warning: trying to add breakpoint to file that does not exist #3567

@karthiknadig

Description

@karthiknadig

@gigi206 commented on Mon Oct 29 2018

Environment data

  • PTVSD version: 4.1.4
  • OS and version: Windows with msys2
  • Python version : 3.6.6

Issue

I use VSCode with extension ms-python.python-2018.9.1 and I use python under msys2 (cygwin like) :

$ python
Python 3.6.6 (default, Jun 28 2018, 10:27:26)
[GCC 7.3.0] on msys
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.platform
'msys'
>>>

When I try to debug a python file I have the following message :

pydev debugger: warning: trying to add breakpoint to file that does not exist: /:\Users\gigi\Desktop\python\gigix.py (will have no effect)

From pydevd_file_utils.py file, if I replace L231 by the following line, it works :

        real_path = subprocess.getoutput("cygpath -a '{}'".format(filename))

https://github.com/Microsoft/ptvsd/blob/66d75d8c87c848d0f7b60102ac6a2a134c34eae4/ptvsd/_vendored/pydevd/pydevd_file_utils.py#L231

I opened this issue (fabioz/PyDev.Debugger#125) but it seems that it should open here...

Is it possible to add a test to determine the path under cygwin / msys2 ?


@karthiknadig commented on Thu Nov 01 2018

Can you give the launch configuration you are using for this?


@gigi206 commented on Fri Nov 02 2018

I use the default configuration :

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Python: Current File (Integrated Terminal)",
            "type": "python",
            "request": "launch",
            "program": "${file}",
            "console": "integratedTerminal"
        },
        {
            "name": "Python: Attach",
            "type": "python",
            "request": "attach",
            "port": 5678,
            "host": "localhost"
        },
        {
            "name": "Python: Module",
            "type": "python",
            "request": "launch",
            "module": "enter-your-module-name-here",
            "console": "integratedTerminal"
        },
        {
            "name": "Python: Django",
            "type": "python",
            "request": "launch",
            "program": "${workspaceFolder}/manage.py",
            "console": "integratedTerminal",
            "args": [
                "runserver",
                "--noreload",
                "--nothreading"
            ],
            "django": true
        },
        {
            "name": "Python: Flask",
            "type": "python",
            "request": "launch",
            "module": "flask",
            "env": {
                "FLASK_APP": "app.py"
            },
            "args": [
                "run",
                "--no-debugger",
                "--no-reload"
            ],
            "jinja": true
        },
        {
            "name": "Python: Current File (External Terminal)",
            "type": "python",
            "request": "launch",
            "program": "${file}",
            "console": "externalTerminal"
        }
    ]
}

When I select Python: Current File (Integrated Terminal) and I start the debug, it works but I have the following message :

PS C:\Users\gigi\Desktop\python> cd 'c:\Users\gigi\Desktop\python'; ${env:PYTHONIOENCODING}='UTF-8'; ${env:PYTHONUNBUFFERED}='1'; & 'C:\Users\gigi\Desktop\VSCode-Anywhere\Third-Party\MSYS2\install\usr\bin\python.exe' 'c:\Users\gigi\Desktop\VSCode-Anywhere\VSCode\extensions\ms-python.python-2018.9.1\pythonFiles\experimental\ptvsd_launcher.py' '49689' 'c:\Users\gigi\Desktop\python\gigix.py'
pydev debugger: warning: trying to add breakpoint to file that does not exist: /:\Users\gigi\Desktop\python\gigix.py (will have no effect)

If I use the following Python code :

import ptvsd

ptvsd.enable_attach()
ptvsd.wait_for_attach()
...

I start my python program and my program pause and listen to port 5678 :

TCP    0.0.0.0:5678           0.0.0.0:0              LISTENING

When I click on Python: Attach, my program finish with the following message :

pydev debugger: warning: trying to add breakpoint to file that does not exist: /:/Users/gigi/Desktop/python/gigix.py (will have no effect)

If I replace the line 231 like explain above, it works.


@fabioz commented on Fri Nov 02 2018

@karthiknadig this is actually a feature request (support cygwin in the debugger) -- the first fix needed is dealing with cygpaths as @gigi206 pointed, but there may be more to it (as a note, when/if cygwin support is added, we should also make sure there's a worker to test it in the ci).


@karthiknadig commented on Fri Nov 02 2018

I see. It might be worth a shot to try 'Attach' with pathMappings.
@gigi206 Add the following to your launch configuration. You may have to tweak the paths for this to work:

        {
            "name": "Python: Attach",
            "type": "python",
            "request": "attach",
            "port": 5678,
            "host": "localhost",
            "pathMappings": [
                {
                    "localRoot": "${workspaceFolder}",
                    "remoteRoot": "<set this value>"
                }
            ]
        },

@gigi206 commented on Fri Nov 02 2018

I have modified my launch.json file to :

"pathMappings": [
                {
                    "localRoot": "${workspaceFolder}",
                    "remoteRoot": "/c/Users/gigi/Desktop/python/"
                }
            ]

It seems to work with attach request type but pathMappings seems not be allowed with launch request type.

I have the message pydev debugger: warning: trying to add breakpoint to file that does not exist: /:\Users\gigi\Desktop\python\gigix.py (will have no effect) with launch request type but it works.


@karthiknadig commented on Fri Nov 02 2018

@DonJayamanne Does 'launch' support pathMappings? On the debugger side we handle pathMappings for both launch and attach.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions