-
Notifications
You must be signed in to change notification settings - Fork 29.5k
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
Investigate debug UI for highly concurrent languages #116109
Comments
Thanks @weinand We were also talking about server-side filtering & grouping features that Delve debug cli or other major Go IDE's debug UI supports or will soon support:
cc @suzmue for vscode go debug UI |
|
In C# (coreclr debug adapter) and Windows C++ (cppvsdbg debug adapter) the A few concrete suggestions:
Maybe something like:
For the stepping scenarios that Connor mentioned, we could extend the execution control commands to take an optional Since I am assuming |
My suggestion for the Threads panel is for the ability to only show one thread at a time. I.e., when stopped on a Breakpoint, only show the thread that hit the breakpoint, with its callstack, and don't show the other threads. Of course, others, and sometimes I, will want to see the other threads at times. But I normally only care about the thread that hit the breakpoint. Perhaps a toggle button at the top to show One (i.e., when active) vs. All Threads. |
related issue: #140845 |
Hi, all, looks like this might be looked at this month although it has slipped a number of times before, so who knows. Can we please get an update? Some of the things that our users would find helpful:
|
I recently filed dotnet/vscode-csharp#7216 This is a significant usability issue for C# DevKit. Is there an MVP version of this feature? Show one thread at a time with the ability to switch threads via a drop down? Solving this for golang is more difficult if you want to show goroutines in the same way mostly because of the scale (the amount of threads and stacks). The best way to visualize that in my biased experience is what Visual Studio has for parallel stacks/tasks. I’m not asking for that though, for C#, assuming we want to improve the experience given the current design space, we could do with “one at a time” thread debugging (show one call stack) with the ability to switch threads. Later we can address how to handle the scale the visualization for gourotines, or .NET tasks… |
The suggestion from @gregg-miskelly #116109 (comment) looks like a good place to start? |
@WardenGnaw moved my issue here #214824. I think these are fundamentally different requests. |
This is also of interest for CUDA debugging, where there is a similarly large number (possibly on the order of ~1M) of GPU threads running at any given time, but the user is usually interested in one or two while stepping thru or hitting breakpoints. For https://github.com/NVIDIA/nsight-vscode-edition, we effectively implemented "show single thread at a time" by rolling our own - we present a single dummy thread at DAP level while using custom UI to allow the user to "set focus" (i.e. change which actual thread is being presented by the dummy DAP thread). We use Note that in our case those threads aren't "green" threads - they are actual physical hardware threads, so it makes sense to conceptually represent them as such. However, all the points regarding the need to lazily load them and provide some filtering experience apply. |
This is also of interest for Erlang, so that a large number of lightweight processes could be displayed. As an additional requirement, it would be great to optionally view processes using a tree view, which would map well with Erlang supervision trees. An approach similar to the ones used for structured variables (with a |
The need for this item arises from a discussion initiated by the Go debugger team and others for the debug adapter protocol:
Since it is difficult to work on the DAP spec without having a concrete UI in mind, I decided to start with a discussion of a concrete debug UI in VS Code for highly concurrent languages first.
It would be great if interested parties could provide input for this discussion.
/cc @testforstephen @polinasok @gregg-miskelly @hyangah @connor4312
The text was updated successfully, but these errors were encountered: