-
Notifications
You must be signed in to change notification settings - Fork 131
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
Proposal: Support Stepping Granularities #110
Comments
Some questions/comments:
|
These three have historically been sufficient for our usage, however I don't see why a different DA couldn't have other granularities.
In my mind there are only three granularities, but a DA that supports stepping granularities would still support steps that don't specify a granularity. For requests that are made without specifying a granularity the DA would have an implicit granularity that doesn't need to be communicated with the client.
StepIn and StepOut can have meaningful differences - most notably with Instruction granularity.
Updated! |
I think it's worth noting that these are essentially "hints". If they are not provided, an adapter would do exactly what it does today when it receives a step. If they are provided, the adapter can be smarter about how "far" to step. |
@auott thanks for your comments: if we agree that there are three granularities, and the implicit (not specified) granularity is one of the three, then we should make the implicit granularity explicit, e.g. by saying something like "if no granularity is specified, a SteppingGranularity of 'line' is assumed. In this case we should make the value 'line' the first of the three. If we think that 'line' is not always the default, then I suggest that we introduce another granularity 'natural' or 'default' as the default (and make it the first for the four). |
The C# debugger uses 'statement' as the default today. That is also the default option value in Visual Studio. So if we want the first option to be the default, I think the proposal is already correct. |
Updated to explicitly indicate that statement is the default granularity. |
@auott since you are using the proposed feature already I assume that you have an updated JSON schema for it. Could you please submit a PR for that? |
Stepping Granularities
A stepping granularity allows specifying how far a specific step (Next, StepIn, StepOut, StepBack) should go.
An adapter can take this as a suggestion and does not need to support them as distinct granularities.
For example, some adapters may consider statement and line equivalent.
CC: @andrewcrawley, @weinand
The text was updated successfully, but these errors were encountered: