You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Currently the debugger implementation has three ways to restart a debug session:
EH debugging: new rawDS is created and old rawDS is abandoned; DebugSession stays the same,
restart without DAP restartRequest: DebugSession (and its rawDS) is terminated and new DebugSession (with new ID) is created with the heavy "startDebugging" API.
restart with DAP restartRequest: DebugSession and rawDS is kept but if the preLaunchTask fails, and user requests to debug anyway a new DebugSession will be created on top of the still existing old DebugSession. This asks for trouble...
We need to fix this by following these principles and suggestions:
the DebugSession and its ID must survive the restart. To achieve this we should use the EH Debugging as a model: DebugService.attachExtensionHost shows what needs to be done to reuse the DebugSession. Basically it just replaces the rawDebugSession by a new one.
Ideally DebugService.restartSession should become similar to DebugService.attachExtensionHost because they do the same thing (and serve the same UI button).
DebugService.runTask is used both for the postTask and the preLaunchTask but its implementation still assumes here and here that it is only meant for the preLaunchTask. runTask should better return a enum value to let its caller know what to do instead of doing it itself.
The text was updated successfully, but these errors were encountered:
weinand
added
bug
Issue identified by VS Code Team member as probable bug
debug
Debug viewlet, configurations, breakpoints, adapter issues
labels
Sep 17, 2018
Currently the debugger implementation has three ways to restart a debug session:
We need to fix this by following these principles and suggestions:
DebugService.attachExtensionHost
shows what needs to be done to reuse the DebugSession. Basically it just replaces the rawDebugSession by a new one.DebugService.restartSession
should become similar toDebugService.attachExtensionHost
because they do the same thing (and serve the same UI button).DebugService.runTask
is used both for the postTask and the preLaunchTask but its implementation still assumes here and here that it is only meant for the preLaunchTask.runTask
should better return a enum value to let its caller know what to do instead of doing it itself.The text was updated successfully, but these errors were encountered: