|
1370 | 1370 | "SetExceptionBreakpointsRequest": { |
1371 | 1371 | "allOf": [ { "$ref": "#/definitions/Request" }, { |
1372 | 1372 | "type": "object", |
1373 | | - "description": "The request configures the debugger's response to thrown exceptions.\nIf an exception is configured to break, a `stopped` event is fired (with reason `exception`).\nClients should only call this request if the corresponding capability `exceptionBreakpointFilters` returns one or more filters.", |
| 1373 | + "description": "The request configures the debugger's response to thrown exceptions. Each of the `filters`, `filterOptions`, and `exceptionOptions` in the request are independent configurations to a debug adapter indicating a kind of exception to catch. An exception thrown in a program should result in a `stopped` event from the debug adapter (with reason `exception`) if any of the configured filters match.\nClients should only call this request if the corresponding capability `exceptionBreakpointFilters` returns one or more filters.", |
1374 | 1374 | "properties": { |
1375 | 1375 | "command": { |
1376 | 1376 | "type": "string", |
|
1463 | 1463 | "frameId": { |
1464 | 1464 | "type": "integer", |
1465 | 1465 | "description": "When `name` is an expression, evaluate it in the scope of this stack frame. If not specified, the expression is evaluated in the global scope. When `variablesReference` is specified, this property has no effect." |
| 1466 | + }, |
| 1467 | + "mode": { |
| 1468 | + "type": "string", |
| 1469 | + "description": "The mode of the desired breakpoint. If defined, this must be one of the `breakpointModes` the debug adapter advertised in its `Capabilities`." |
1466 | 1470 | } |
1467 | 1471 | }, |
1468 | 1472 | "required": [ "name" ] |
|
3231 | 3235 | "supportsSingleThreadExecutionRequests": { |
3232 | 3236 | "type": "boolean", |
3233 | 3237 | "description": "The debug adapter supports the `singleThread` property on the execution requests (`continue`, `next`, `stepIn`, `stepOut`, `reverseContinue`, `stepBack`)." |
| 3238 | + }, |
| 3239 | + "breakpointModes": { |
| 3240 | + "type": "array", |
| 3241 | + "items": { |
| 3242 | + "$ref": "#/definitions/BreakpointMode" |
| 3243 | + }, |
| 3244 | + "description": "Modes of breakpoints supported by the debug adapter, such as 'hardware' or 'software'. If present, the client may allow the user to select a mode and include it in its `setBreakpoints` request.\n\nClients may present the first applicable mode in this array as the 'default' mode in gestures that set breakpoints." |
3234 | 3245 | } |
3235 | 3246 | } |
3236 | 3247 | }, |
|
3700 | 3711 | "logMessage": { |
3701 | 3712 | "type": "string", |
3702 | 3713 | "description": "If this attribute exists and is non-empty, the debug adapter must not 'break' (stop)\nbut log the message instead. Expressions within `{}` are interpolated.\nThe attribute is only honored by a debug adapter if the corresponding capability `supportsLogPoints` is true.\nIf either `hitCondition` or `condition` is specified, then the message should only be logged if those conditions are met." |
| 3714 | + }, |
| 3715 | + "mode": { |
| 3716 | + "type": "string", |
| 3717 | + "description": "The mode of this breakpoint. If defined, this must be one of the `breakpointModes` the debug adapter advertised in its `Capabilities`." |
3703 | 3718 | } |
3704 | 3719 | }, |
3705 | 3720 | "required": [ "line" ] |
|
3774 | 3789 | "hitCondition": { |
3775 | 3790 | "type": "string", |
3776 | 3791 | "description": "An expression that controls how many hits of the breakpoint are ignored.\nThe debug adapter is expected to interpret the expression as needed.\nThe attribute is only honored by a debug adapter if the corresponding capability `supportsHitConditionalBreakpoints` is true." |
| 3792 | + }, |
| 3793 | + "mode": { |
| 3794 | + "type": "string", |
| 3795 | + "description": "The mode of this breakpoint. If defined, this must be one of the `breakpointModes` the debug adapter advertised in its `Capabilities`." |
3777 | 3796 | } |
3778 | 3797 | }, |
3779 | 3798 | "required": [ "instructionReference" ] |
|
4042 | 4061 | "condition": { |
4043 | 4062 | "type": "string", |
4044 | 4063 | "description": "An expression for conditional exceptions.\nThe exception breaks into the debugger if the result of the condition is true." |
| 4064 | + }, |
| 4065 | + "mode": { |
| 4066 | + "type": "string", |
| 4067 | + "description": "The mode of this exception breakpoint. If defined, this must be one of the `breakpointModes` the debug adapter advertised in its `Capabilities`." |
4045 | 4068 | } |
4046 | 4069 | }, |
4047 | 4070 | "required": [ "filterId" ] |
|
4184 | 4207 | "Previously fetched thread related data has become invalid and needs to be refetched.", |
4185 | 4208 | "Previously fetched variable data has become invalid and needs to be refetched." |
4186 | 4209 | ] |
| 4210 | + }, |
| 4211 | + "BreakpointMode": { |
| 4212 | + "type": "object", |
| 4213 | + "description": "A `BreakpointMode` is provided as a option when setting breakpoints on sources or instructions.", |
| 4214 | + "required": ["mode", "label", "appliesTo"], |
| 4215 | + "properties": { |
| 4216 | + "mode": { |
| 4217 | + "type": "string", |
| 4218 | + "description": "The internal ID of the mode. This value is passed to the `setBreakpoints` request." |
| 4219 | + }, |
| 4220 | + "label": { |
| 4221 | + "type": "string", |
| 4222 | + "description": "The name of the breakpoint mode. This is shown in the UI." |
| 4223 | + }, |
| 4224 | + "description": { |
| 4225 | + "type": "string", |
| 4226 | + "description": "A help text providing additional information about the breakpoint mode. This string is typically shown as a hover and can be translated." |
| 4227 | + }, |
| 4228 | + "appliesTo": { |
| 4229 | + "type": "array", |
| 4230 | + "items": { |
| 4231 | + "$ref": "#/definitions/BreakpointModeApplicability" |
| 4232 | + }, |
| 4233 | + "description": "Describes one or more type of breakpoint this mode applies to." |
| 4234 | + } |
| 4235 | + } |
| 4236 | + }, |
| 4237 | + "BreakpointModeApplicability": { |
| 4238 | + "type": "string", |
| 4239 | + "_enum": ["source", "exception", "data", "instruction"], |
| 4240 | + "enumDescriptions": [ |
| 4241 | + "In `SourceBreakpoint`s", |
| 4242 | + "In exception breakpoints applied in the `ExceptionFilterOptions`", |
| 4243 | + "In data breakpoints requested in the the `DataBreakpointInfo` request", |
| 4244 | + "In `InstructionBreakpoint`s" |
| 4245 | + ], |
| 4246 | + "description": "Describes one or more type of breakpoint a `BreakpointMode` applies to. This is a non-exhaustive enumeration and may expand as future breakpoint types are added." |
4187 | 4247 | } |
4188 | | - |
4189 | 4248 | } |
4190 | 4249 | } |
0 commit comments