You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Currently, we only provode support for data breakpoints where the
request is for a child of some container using variables_reference.
However, the spec includes support for:
- an arbitrary expression, and
- an arbitrary address, and
- an optional size in bytes.
The later two are supported via a capability
"supportsDataBreakpointBytes". We add support for all of these options.
It's fairly trivial to evaluate an expression and do esentially what we
do now for children (find the load address, check its size). But we can
also accept a size, so long as it's valid watchpoint size. Similarly for
addresses, if 'asAddress' is supplied we can just try to use it. It will
probably fail if the address is actually invalid, but that's sort of the
point.
Copy file name to clipboardExpand all lines: adapter/adapter-protocol/src/debugAdapterProtocol.json
+17-1Lines changed: 17 additions & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -1386,6 +1386,18 @@
1386
1386
"name": {
1387
1387
"type": "string",
1388
1388
"description": "The name of the Variable's child to obtain data breakpoint information for.\nIf variablesReference isn't provided, this can be an expression."
1389
+
},
1390
+
"frameId": {
1391
+
"type": "integer",
1392
+
"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."
1393
+
},
1394
+
"asAddress": {
1395
+
"type": "boolean",
1396
+
"description": "If `true`, the `name` is a memory address and the debugger should interpret it as a decimal value, or hex value if it is prefixed with `0x`. Clients may set this property only if the `supportsDataBreakpointBytes` capability is true."
1397
+
},
1398
+
"bytes": {
1399
+
"type": "integer",
1400
+
"description": "If specified, a debug adapter should return information for the range of memory extending `bytes` number of bytes from the address or variable specified by `name`. Breakpoints set using the resulting data ID should pause on data access anywhere within that range. Clients may set this property only if the `supportsDataBreakpointBytes` capability is true."
1389
1401
}
1390
1402
},
1391
1403
"required": [ "name" ]
@@ -3145,7 +3157,11 @@
3145
3157
"supportsSingleThreadExecutionRequests": {
3146
3158
"type": "boolean",
3147
3159
"description": "The debug adapter supports the 'singleThread' property on the execution requests ('continue', 'next', 'stepIn', 'stepOut', 'reverseContinue', 'stepBack')."
3148
-
}
3160
+
},
3161
+
"supportsDataBreakpointBytes": {
3162
+
"type": "boolean",
3163
+
"description": "The debug adapter supports the `asAddress` and `bytes` fields in the `dataBreakpointInfo` request."
0 commit comments