-
Notifications
You must be signed in to change notification settings - Fork 29.7k
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
Add support for breakpoint dependencies (trigger points) #152428
Comments
This feature request is now a candidate for our backlog. The community has 60 days to upvote the issue. If it receives 20 upvotes we will move it to our backlog. If not, we will close it. To learn more about how we handle feature requests, please see our documentation. Happy Coding! |
This feature request has not yet received the 20 community upvotes it takes to make to our backlog. 10 days to go. To learn more about how we handle feature requests, please see our documentation. Happy Coding! |
🙁 In the last 60 days, this feature request has received less than 20 community upvotes and we closed it. Still a big Thank You to you for taking the time to create this issue! To learn more about how we handle feature requests, please see our documentation. Happy Coding! |
@weinand what if we go with the approach of making the dependent breakpoints hit state a different type of condition ? So that in breakpoint widget, in condition editor we can add a swicter to switch between expression and break point dependency. its similar to what intellij offers. WDYT? |
To answer @roblourens about conditions, yes you can have a condition on the trigger point. Because the conditions are evaluated by DA and only if it satisfied the DA will tell the client that the breakpoint is hit. Then only we will act on it to enable non trigger breakpoints as of current implementation |
@gayanper above you said:
Yes, something along the lines of your suggestion was my first thought as well.... But I wonder whether we can (or even should) map "dependent breakpoints" to "conditional breakpoints".
Given this conceptual difference, I don't think that we should try to fold "dependent breakpoints" into "conditional breakpoints". But I see an opportunity for introducing the concept of a "breakpoint action": the user can specify what should happen when a breakpoint is hit. One option would be to "enable other breakpoints". With this the breakpoint would become a "trigger point". I remember feature requests for "breakpoint actions" but I cannot find them right now in the VS Code repo. |
BTW, found some older duplicates for trigger points:
|
@weinand I think i was not clear on my last comment. What I meant was to use the condition UI widget to add breakpoint relation. But I think you explain it very well in your comment. So yes we could implement support for breakpoint action. How do you think its better from the UX
I think the first option might be better since such UX flows are already there in vscode. But let me know what you think. The we can store the depdency breakpoint information like (uri, line, column) as a identifier with the trigger point and disable it. We can also make sure then starting the debug session also to disable such dependent breakpoints. WDYT ? |
@weinand any feedback ? |
Please provide feedback so I can continue this work on a agreed path to avoid rework :). |
@gayanper Sorry, but I'm on vacation for the next three weeks... |
@weinand hope you are back from vacation and had good time. I got some time to change the design and start with the UI part. WDYT about the below Here i added a new option for condition breakpoint to select the breakpoint which the current editing one should wait for. If the UI part looks good, my idea is to build this as another type of condition input in addition to expression where we can use the same icon as well. Let me know what you think. |
ping to see if anyone can provide me feedback to finish this feature. |
screencast.mp4New change in action |
screencast-typescript.mp4typescript in action |
I will take a look at this @gayanper, I'm still a little unsure about committing to the feature as a whole, and it needs some UX work, but I will take a closer look when I have time. Due to the holiday, that may not be until early December. Thanks for your work on this so far. |
Let me know if we need to do some UI changes, i don't mind spending some time on changes that requires to make this change available in vscode. |
Any update on this issue and the connected PR ? Could we have a timeline where this can be discussed and see how we can get this functionality merged. Also if vscode team thinks this is not something that would fit the product please let me know as well, so I can look into how i can implement same functionality as an extension using the extension API |
@roblourens @weinand I also see that Jetbrains Fleet also trying to keep breakpoint properties simpler without adding other than conditions. Are you considering the same ? If so do you see implementing the same feature with a different configuration panel as an extension might be good choice and may be suggest extensions-points/APIs for missing pieces ? |
Yeah, this should be possible with our extension APIs, e.g. vscode/src/vscode-dts/vscode.d.ts Line 15119 in 5acacac
|
@roblourens Yes thats sounds like a good idea. I can try that and share here. |
I'm finding that I need (source) breakpoint enhancements for some functionality we are trying to duplicate from an existing debugger, and I think it overlaps with a lot of what has been mentioned here. At a minimum (MVF - minimum viable feature)-
Bonus:
My use case is, while debugging, i need the be able to allow the user to set a breakpoint for the selected thread in the UI (I know it sounds weird, but threads are really 'tasks' in our use case). So, if debugging, and they select 'thread' X, only the breakpoints for 'thread' X show, they can add remove as normal, and those breakpoints are created with some property indicating they are meant for thread "x". And when not debugging, all breakpoints show. I'm currently trying to find some alternate compromise with some combination of 'tricks' below that could allow us to move forward for now, but its all very strange for the user;
It might make some sense to separate out to a separate feature-request, but wanted to mention it here first, if there's ideas how how these might be related. I also understand that separating the "UI-related" parts might make the non-UI parts easier to provide. |
I look into implementing this feature as an extension, But unfortunately I don't see a way of listening breakpoints to get notified when they are hit. Is there a a possibility to do this ? |
Done in #166202 |
When debugging a production level application like an angular app, java microservice we often need to add breakpoints into methods which are called frequently. For an example rendering method in the frontend or event subscriber on the consumer. But most of the time we are only interested to suspend on these methods when it was triggered from a another operation which we are interested of.
How this is done in Eclipse is using trigger point, We can add a trigger point (different kind of a breakpoint) on the operation which is called before our debugging method, so once only this trigger point is hit, our rendering or event subscription breakpoint will get enabled. In IntelliJ this is done using breakpoint dependencies.
having this support for vscode would be really beneficial, if we can build this on the vscode debug extension layer, we could even support polygot scenarios, where the trigger point is in one app we are debugging and actual breakpoint which get enabled might be on another app.
The text was updated successfully, but these errors were encountered: