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
Compound debugging sessions doesn't seem to allow jumping between sessions #34920
Comments
@auchenberg good catch, thanks |
💪 |
In the test pass I've immediately noticed that with this "fix", debugging two sessions is completely broken. See this video: After stepping in one session, the other session is activated automatically. So the next step action now goes to the other session which is very confusing because it does not become obvious why. How this should work:
From @auchenberg's initial issue "we no longer allow users to seamlessly jump between the two debugging sessions" it sounds that there was a regression of the original behaviour which I wasn't aware of. We should investigate what that regression is (instead of fixing it with a new mis-feature). |
@weinand thanks for clarification. |
There was a following regression:
This was introduced by a user PR which is good in general but is looking at the wrong threadId (the one given by the adapter, not the real id). By accident node always gives same ids to thread starting from 1 which would happen that the wrong threads are gettings focused. The original issue posted by @auchenberg is not fixed (it is invalid), that is the following scenario
|
I just grabbed the latest insiders build, and compared it to older releases, and @weinand you are right that this isn't an regression. That said, the problem is the following:
This is visualized in this recording with Node + Chrome debugging, where the Chrome is left paused, and I would expect VS Code to switch to the Chrome process after Node is resumed. |
@auchenberg thanks for clarifying, however this is expected behavior. If in step 5 we would switch focus to program A then following that logic (implementation) we would need to always switch focus whenever B is resumed - please note that step and continue are treated the same in VSCode (since both can take optionally long until they are hit again). So if we would in step 5 switch to B we would come to the issue @weinand outlined - that the focus always switches when a user is simply stepping through his one program. A workaround for this would be to focus program A with a timeout -> however this seems too smart, but feel free to open a feature request for that and we can discuss it. |
IMO trying to "guess" which session a user will interact with next, most likely will fail. But we should investigate how other debugger behave in this case. @stevencl do you know more about this UX issue? |
I've verified that the "fix" (changing the activate session automatically) has been removed. |
When using Compound debugging sessions we no longer allow users to seamlessly jump between the two debugging sessions, which limits the experience, as it's not clear that you manually have to switch to the other debugging session to continue debugging.
See this video https://youtu.be/zdKFecmI8Ko
The issue is that when breaking on a Chrome breakpoint after execution is resumed, then a breakpoint on the Node debug session is hit, but this isn't clear in the UI, as you manually have to switch to the Node debug session to see this.
It didn't use to be this way, as we automatically jumped between debugging sessions to create a seamless experience in earlier builds.
Steps to Reproduce:
The text was updated successfully, but these errors were encountered: