-
Notifications
You must be signed in to change notification settings - Fork 137
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Support case sensitive folders on Windows #200
Comments
@c-herff Can you provide debugger logs? you can generate them by setting "PTVSD_LOG_DIR" environment variable to point to a log dir. Please remove any personal info from that file and share it with us. {
"name": "Terminal",
"type": "python",
"request": "launch",
"program": "${file}",
"console": "integratedTerminal",
"env":{
"PTVSD_LOG_DIR": "<path to log dir>"
}
} |
Thanks for your response @karthiknadig Here is the output of the debug log `I00000.016: Windows-10-10.0.17763-SP0 AMD64 I00000.016: main(['c:\Users\USER\.vscode\extensions\ms-python.python-2019.5.18875\pythonFiles\ptvsd_launcher.py', '--client', '--host', 'localhost', '--port', '59875', 'c:\workspace\pilot-data-structure\newTest.py']) I00000.016: sys.argv after parsing: ['c:\Users\\USER\.vscode\extensions\ms-python.python-2019.5.18875\pythonFiles\ptvsd_launcher.py'] D00000.016: sys.prefix: ('C:\ProgramData\Miniconda3\envs\p3',) D00000.016: sys.base_prefix: C:\ProgramData\Miniconda3\envs\p3 D00000.032: site.getusersitepackages(): C:\Users\USER\AppData\Roaming\Python\Python36\site-packages D00000.032: site.getsitepackages(): ['C:\ProgramData\Miniconda3\envs\p3', 'C:\ProgramData\Miniconda3\envs\p3\lib\site-packages'] D00000.032: Folder with "site-packages" in sys.path: C:\ProgramData\Miniconda3\envs\p3\lib\site-packages D00000.032: sysconfig stdlib: C:\ProgramData\Miniconda3\envs\p3\Lib D00000.032: sysconfig platstdlib: C:\ProgramData\Miniconda3\envs\p3\Lib D00000.032: sysconfig platlib: C:\ProgramData\Miniconda3\envs\p3\Lib\site-packages D00000.032: sysconfig purelib: C:\ProgramData\Miniconda3\envs\p3\Lib\site-packages D00000.032: os dir: C:\ProgramData\Miniconda3\envs\p3\lib D00000.032: threading dir: C:\ProgramData\Miniconda3\envs\p3\lib D00000.032: sys.argv after patching: ['c:\workspace\pilot-data-structure\newTest.py'] D00000.032: Installing pydevd hooks. D00000.032: Monkey-patching multiprocess functions. D00000.032: pydevd.settrace() D00000.032: Starting client daemon on ('localhost', 59875). D00000.032: IDE <-- { D00000.032: IDE --> { D00000.047: (while handling {'command': 'launch', 'type': 'request', 'seq': 2}) D00000.047: (while handling {'command': 'launch', 'type': 'request', 'seq': 2}) D00000.047: (requested while handling {'command': 'launch', 'type': 'request', 'seq': 2}) D00000.047: (while handling {'command': 'launch', 'type': 'request', 'seq': 2}) D00000.047: (requested while handling {'command': 'launch', 'type': 'request', 'seq': 2}) D00000.047: IDE --> { D00000.047: (while handling {'command': 'launch', 'type': 'request', 'seq': 2}) D00000.047: (while handling {'command': 'initialize', 'type': 'request', 'seq': 1}) D00000.047: (while handling {'command': 'initialize', 'type': 'request', 'seq': 1}) D00000.047: PYD --> { D00000.047: (while handling ('CMD_PROCESS_EVENT', 4)) D00000.047: (requested while handling {'command': 'launch', 'type': 'request', 'seq': 2}) D00000.204: IDE --> { D00000.204: (requested while handling {'command': 'setBreakpoints', 'type': 'request', 'seq': 5}) D00000.204: (while handling {'command': 'setBreakpoints', 'type': 'request', 'seq': 5}) D00000.204: (while handling {'command': 'setBreakpoints', 'type': 'request', 'seq': 6}) D00000.219: (requested while handling {'command': 'setBreakpoints', 'type': 'request', 'seq': 6}) D00000.219: (while handling {'command': 'setBreakpoints', 'type': 'request', 'seq': 6}) D00000.219: (requested while handling {'command': 'setBreakpoints', 'type': 'request', 'seq': 7}) D00000.219: (while handling {'command': 'setBreakpoints', 'type': 'request', 'seq': 7}) D00000.235: IDE --> { D00000.235: (while handling {'command': 'setExceptionBreakpoints', 'type': 'request', 'seq': 8}) D00000.235: (requested while handling {'command': 'setExceptionBreakpoints', 'type': 'request', 'seq': 8}) D00000.235: (while handling {'command': 'setExceptionBreakpoints', 'type': 'request', 'seq': 8}) D00000.250: IDE --> { D00000.250: (while handling {'command': 'configurationDone', 'type': 'request', 'seq': 9}) D00000.250: (while handling {'command': 'configurationDone', 'type': 'request', 'seq': 9}) D00000.250: (while handling {'command': 'configurationDone', 'type': 'request', 'seq': 9}) D00000.250: (requested while handling {'command': 'configurationDone', 'type': 'request', 'seq': 9}) D00000.250: IDE --> { D00000.250: (while handling {'command': 'threads', 'type': 'request', 'seq': 10}) D00000.250: PYD --> { D00000.250: (while handling ('CMD_THREAD_CREATE', 20)) D00000.250: (requested while handling {'command': 'threads', 'type': 'request', 'seq': 10}) D00000.250: (while handling {'command': 'threads', 'type': 'request', 'seq': 10}) I00000.344: Running file c:\workspace\pilot-data-structure\newTest.py D00000.344: Adding c:\workspace\pilot-data-structure to sys.path. D00000.344: PYD --> { D00000.344: (while handling ('CMD_WRITE_TO_CONSOLE', 24)) D00000.344: PYD --> { D00000.344: (while handling ('CMD_WRITE_TO_CONSOLE', 26)) D00000.344: PYD --> { D00000.344: (while handling ('CMD_WRITE_TO_CONSOLE', 28)) D00000.360: PYD --> { D00000.360: (while handling ('CMD_WRITE_TO_CONSOLE', 30)) D00000.360: PYD --> { D00000.360: (while handling ('CMD_THREAD_KILL', 32)) D00000.360: IDE --> { D00000.360: (while handling {'command': 'threads', 'type': 'request', 'seq': 11}) D00000.360: (requested while handling {'command': 'threads', 'type': 'request', 'seq': 11}) D00000.360: (while handling {'command': 'threads', 'type': 'request', 'seq': 11}) D00000.641: Stopping daemon. D00000.641: Message processor is stopping. D00000.641: Closing daemon after single session D00000.641: Stopping daemon. D00000.954: Handling atexit D00000.954: IDE <-- { D00000.954: IDE <-- { D00000.954: Stopping daemon. D00000.954: IDE --> { D00000.954: (while handling {'command': 'disconnect', 'type': 'request', 'seq': 12}) D00000.954: (while handling {'command': 'disconnect', 'type': 'request', 'seq': 12}) D00000.954: (while handling {'command': 'disconnect', 'type': 'request', 'seq': 12}) D00000.954: (while handling {'command': 'disconnect', 'type': 'request', 'seq': 12}) ` |
@c-herff The log does not show this particular issue. Can you share a log when this particular issue is reproduced? I have tried reproducing this locally, and I have not been able to. |
@c-herff in windows checking if a file exists should be case insensitive, so, it's weird that it says that the file does not exist... can you change the file to have the contents below, run it and post the output?
|
Dear @fabioz, thanks for your help. The output reads: pydev debugger: warning: trying to add breakpoint to file that does not exist: c:\workspace\pilot-data-structure\newtest.py (will have no effect) c:\workspace\pilot-data-structure\newTest.py |
Humm, I was doing some research and it seems that this is a new feature that can be enabled selectively in folders (i.e.: https://www.howtogeek.com/354220/how-to-enable-case-sensitive-folders-on-windows-10/) So, in this case it seems that the given folder is case-sensitive... it seems that this may happen if you either specifically enable the option for the directory or if you created it through some linux tool. Can you check if you can run (from
@karthiknadig @int19h it seems that we need to do some changes to the debugger structure to accommodate this new windows feature... (we can't normalize the paths as is done now in this case -- this needs some research on the best way to handle it). |
Dear @fabioz |
I'm renaming this issue to describe the actual cause and I'll leave it open so that we can address this in the future in the debugger... |
Since it seems we seem to be having more reports due to this, I think we should address this in the short-term. |
Note for anyone with this issue: there's a workaround changing the code of the debugger itself so that it doesn't do the case normalization at: |
Note: I'm currently investigating this. |
Note: I'm still working on this. The approach I'm taking is that the internal version we work with (which has the real-normalized filename) should not be used for doing the check, while the parameter passed will be checked in Internally many things were already structured this way, but I'm taking a bit more time to review the existing code and make sure that each path uses what's needed on each place -- i.e.: some places need the absolute normalized version, other places need the canonical version and other places need the original version with the proper case (so, reviewing the code for consistency in that is taking a while -- I hope to finish this next week). |
This bug has been reported and apparently been solved before, but since the latest update I'm experiencing the problem, again.
In CamelCased Filenames, the debugger tries to open a new all-lowercase file which does not exist.
Environment data
Steps to reproduce:
Logs
pydev debugger: warning: trying to add breakpoint to file that does not exist: c:\workspace\pilot-data-structure\aligndata.py (will have no effect)
The text was updated successfully, but these errors were encountered: