microsoft/ptvsd

debugger ignore --noreload option in launch.json for django projects

alexvelfr opened this issue · 4 comments

Environment data

  • Linux Mint 19.3
  • Python 3.7.5
  • VS Code 1.44.1:

Steps to reproduce:

  1. create django project
  2. create launch.json
  3. start debbuging

If add another option between "runserver" and "--noreload" or after "--noreload", than other options will be work fine, but "--noreload" will cutted
For clarity you can watch it on screen:
bug

@alexvelfr You are probably in the Reload - experiment group. You can check this by going to Output > Python panel, and scroll all the way to the top (in the image below it is in Reload - control group):
image

Ideally this should not block you from your development. Because the new debugger (debugpy) supports re-load on all platforms. If it is blocking you, then you can opt-out of the experiment if you want. Go to user settings, and look for optOutFrom and add Reload - experiment to that list.

Thanks @karthiknadig! Indeed it is. This does not block the development, but sometimes it really hinders, because when the application is started, making changes in one tab and switching to another, the application restarts and in some cases when the changes have not yet been made, it stops at the exception point. Focus is lost and the code is entered elsewhere

because when the application is started, making changes in one tab and switching to another, the application restarts and in some cases when the changes have not yet been made

This is likely because you may have auto-save on. So, django monitors files for modification, as soon as it detects a save it attempts a reload.

/cc @luabud This is a case where auto-save interferes with good user experience.

This is likely because you may have auto-save on.

Yeh, this happens because auto-save on. But auto-save needs :)
I solved it another way. I am unchecked flag "uncatchable exceptions" in debugger by default, so focus don't change, if happened problem, only information in console. And i turn on it back, when need complex testing