-
Notifications
You must be signed in to change notification settings - Fork 1.3k
Description
@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))
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.