Update pydevd_schema with latest debugProtocol.json. Fixes #1434 (#1435)

This commit is contained in:
Fabio Zadrozny 2019-05-20 17:15:45 -03:00 committed by Karthik Nadig
parent a8c1f32b58
commit 202ee99125
3 changed files with 852 additions and 15 deletions

View file

@ -542,6 +542,7 @@ class %(name)s(BaseSchema):
'''
contents = []
contents.append('# coding: utf-8')
contents.append('# Automatically generated code.')
contents.append('# Do not edit manually.')
contents.append('# Generated by running: %s' % os.path.basename(__file__))

View file

@ -152,7 +152,7 @@
"reason": {
"type": "string",
"description": "The reason for the event.\nFor backward compatibility this string is shown in the UI if the 'description' attribute is missing (but it must not be translated).",
"_enum": [ "step", "breakpoint", "exception", "pause", "entry", "goto" ]
"_enum": [ "step", "breakpoint", "exception", "pause", "entry", "goto", "function breakpoint", "data breakpoint" ]
},
"description": {
"type": "string",
@ -909,7 +909,7 @@
"SetFunctionBreakpointsRequest": {
"allOf": [ { "$ref": "#/definitions/Request" }, {
"type": "object",
"description": "Sets multiple function breakpoints and clears all previous function breakpoints.\nTo clear all function breakpoint, specify an empty array.\nWhen a function breakpoint is hit, a 'stopped' event (event type 'function breakpoint') is generated.",
"description": "Replaces all existing function breakpoints with new function breakpoints.\nTo clear all function breakpoints, specify an empty array.\nWhen a function breakpoint is hit, a 'stopped' event (with reason 'function breakpoint') is generated.",
"properties": {
"command": {
"type": "string",
@ -1003,6 +1003,125 @@
}]
},
"DataBreakpointInfoRequest": {
"allOf": [ { "$ref": "#/definitions/Request" }, {
"type": "object",
"description": "Obtains information on a possible data breakpoint that could be set on an expression or variable.",
"properties": {
"command": {
"type": "string",
"enum": [ "dataBreakpointInfo" ]
},
"arguments": {
"$ref": "#/definitions/DataBreakpointInfoArguments"
}
},
"required": [ "command", "arguments" ]
}]
},
"DataBreakpointInfoArguments": {
"type": "object",
"description": "Arguments for 'dataBreakpointInfo' request.",
"properties": {
"variablesReference": {
"type": "integer",
"description": "Reference to the Variable container if the data breakpoint is requested for a child of the container."
},
"name": {
"type": "string",
"description": "The name of the Variable's child to obtain data breakpoint information for. If variableReference isnt provided, this can be an expression."
}
},
"required": [ "name" ]
},
"DataBreakpointInfoResponse": {
"allOf": [ { "$ref": "#/definitions/Response" }, {
"type": "object",
"description": "Response to 'dataBreakpointInfo' request.",
"properties": {
"body": {
"type": "object",
"properties": {
"dataId": {
"type": [ "string", "null" ],
"description": "An identifier for the data on which a data breakpoint can be registered with the setDataBreakpoints request or null if no data breakpoint is available."
},
"description": {
"type": "string",
"description": "UI string that describes on what data the breakpoint is set on or why a data breakpoint is not available."
},
"accessTypes": {
"type": "array",
"items": {
"$ref": "#/definitions/DataBreakpointAccessType"
},
"description": "Optional attribute listing the available access types for a potential data breakpoint. A UI frontend could surface this information."
},
"canPersist": {
"type": "boolean",
"description": "Optional attribute indicating that a potential data breakpoint could be persisted across sessions."
}
},
"required": [ "dataId", "description" ]
}
},
"required": [ "body" ]
}]
},
"SetDataBreakpointsRequest": {
"allOf": [ { "$ref": "#/definitions/Request" }, {
"type": "object",
"description": "Replaces all existing data breakpoints with new data breakpoints.\nTo clear all data breakpoints, specify an empty array.\nWhen a data breakpoint is hit, a 'stopped' event (with reason 'data breakpoint') is generated.",
"properties": {
"command": {
"type": "string",
"enum": [ "setDataBreakpoints" ]
},
"arguments": {
"$ref": "#/definitions/SetDataBreakpointsArguments"
}
},
"required": [ "command", "arguments" ]
}]
},
"SetDataBreakpointsArguments": {
"type": "object",
"description": "Arguments for 'setDataBreakpoints' request.",
"properties": {
"breakpoints": {
"type": "array",
"items": {
"$ref": "#/definitions/DataBreakpoint"
},
"description": "The contents of this array replaces all existing data breakpoints. An empty array clears all data breakpoints."
}
},
"required": [ "breakpoints" ]
},
"SetDataBreakpointsResponse": {
"allOf": [ { "$ref": "#/definitions/Response" }, {
"type": "object",
"description": "Response to 'setDataBreakpoints' request.\nReturned is information about each breakpoint created by this request.",
"properties": {
"body": {
"type": "object",
"properties": {
"breakpoints": {
"type": "array",
"items": {
"$ref": "#/definitions/Breakpoint"
},
"description": "Information about the data breakpoints. The array elements correspond to the elements of the input argument 'breakpoints' array."
}
},
"required": [ "breakpoints" ]
}
},
"required": [ "body" ]
}]
},
"ContinueRequest": {
"allOf": [ { "$ref": "#/definitions/Request" }, {
"type": "object",
@ -1538,7 +1657,7 @@
},
"name": {
"type": "string",
"description": "The name of the variable."
"description": "The name of the variable in the container."
},
"value": {
"type": "string",
@ -2324,6 +2443,10 @@
"supportsTerminateRequest": {
"type": "boolean",
"description": "The debug adapter supports the 'terminate' request."
},
"supportsDataBreakpoints": {
"type": "boolean",
"description": "The debug adapter supports data breakpoints."
}
}
},
@ -2681,7 +2804,7 @@
"kind": {
"description": "The kind of variable. Before introducing additional values, try to use the listed values.",
"type": "string",
"_enum": [ "property", "method", "class", "data", "event", "baseClass", "innerClass", "interface", "mostDerivedClass", "virtual" ],
"_enum": [ "property", "method", "class", "data", "event", "baseClass", "innerClass", "interface", "mostDerivedClass", "virtual", "dataBreakpoint" ],
"enumDescriptions": [
"Indicates that the object is a property.",
"Indicates that the object is a method.",
@ -2692,7 +2815,8 @@
"Indicates that the object is an inner class.",
"Indicates that the object is an interface.",
"Indicates that the object is the most derived class.",
"Indicates that the object is virtual, that means it is a synthetic object introduced by the adapter for rendering purposes, e.g. an index range for large arrays."
"Indicates that the object is virtual, that means it is a synthetic object introduced by the adapter for rendering purposes, e.g. an index range for large arrays.",
"Indicates that a data breakpoint is registered for the object."
]
},
"attributes": {
@ -2768,6 +2892,36 @@
"required": [ "name" ]
},
"DataBreakpointAccessType": {
"type": "string",
"description": "This enumeration defines all possible access types for data breakpoints.",
"enum": [ "read", "write", "readWrite" ]
},
"DataBreakpoint": {
"type": "object",
"description": "Properties of a data breakpoint passed to the setDataBreakpoints request.",
"properties": {
"dataId": {
"type": "string",
"description": "An id representing the data. This id is returned from the dataBreakpointInfo request."
},
"accessType": {
"$ref": "#/definitions/DataBreakpointAccessType",
"description": "The access type of the data."
},
"condition": {
"type": "string",
"description": "An optional expression for conditional breakpoints."
},
"hitCondition": {
"type": "string",
"description": "An optional expression that controls how many hits of the breakpoint are ignored. The backend is expected to interpret the expression as needed."
}
},
"required": [ "dataId" ]
},
"Breakpoint": {
"type": "object",
"description": "Information about a Breakpoint created in setBreakpoints or setFunctionBreakpoints.",

View file

@ -1,3 +1,4 @@
# coding: utf-8
# Automatically generated code.
# Do not edit manually.
# Generated by running: __main__pydevd_gen_debug_adapter_protocol.py
@ -515,7 +516,9 @@ class StoppedEvent(BaseSchema):
"exception",
"pause",
"entry",
"goto"
"goto",
"function breakpoint",
"data breakpoint"
]
},
"description": {
@ -3485,11 +3488,11 @@ class SetBreakpointsResponse(BaseSchema):
@register
class SetFunctionBreakpointsRequest(BaseSchema):
"""
Sets multiple function breakpoints and clears all previous function breakpoints.
Replaces all existing function breakpoints with new function breakpoints.
To clear all function breakpoint, specify an empty array.
To clear all function breakpoints, specify an empty array.
When a function breakpoint is hit, a 'stopped' event (event type 'function breakpoint') is
When a function breakpoint is hit, a 'stopped' event (with reason 'function breakpoint') is
generated.
Note: automatically generated code. Do not edit manually.
@ -3913,6 +3916,464 @@ class SetExceptionBreakpointsResponse(BaseSchema):
return dct
@register_request('dataBreakpointInfo')
@register
class DataBreakpointInfoRequest(BaseSchema):
"""
Obtains information on a possible data breakpoint that could be set on an expression or variable.
Note: automatically generated code. Do not edit manually.
"""
__props__ = {
"seq": {
"type": "integer",
"description": "Sequence number."
},
"type": {
"type": "string",
"enum": [
"request"
]
},
"command": {
"type": "string",
"enum": [
"dataBreakpointInfo"
]
},
"arguments": {
"type": "DataBreakpointInfoArguments"
}
}
__refs__ = set(['arguments'])
__slots__ = list(__props__.keys()) + ['kwargs']
def __init__(self, arguments, seq=-1, update_ids_from_dap=False, **kwargs): # noqa (update_ids_from_dap may be unused)
"""
:param string type:
:param string command:
:param DataBreakpointInfoArguments arguments:
:param integer seq: Sequence number.
"""
self.type = 'request'
self.command = 'dataBreakpointInfo'
if arguments is None:
self.arguments = DataBreakpointInfoArguments()
else:
self.arguments = DataBreakpointInfoArguments(update_ids_from_dap=update_ids_from_dap, **arguments) if arguments.__class__ != DataBreakpointInfoArguments else arguments
self.seq = seq
self.kwargs = kwargs
def to_dict(self, update_ids_to_dap=False): # noqa (update_ids_to_dap may be unused)
type = self.type # noqa (assign to builtin)
command = self.command
arguments = self.arguments
seq = self.seq
dct = {
'type': type,
'command': command,
'arguments': arguments.to_dict(update_ids_to_dap=update_ids_to_dap),
'seq': seq,
}
dct.update(self.kwargs)
return dct
@register
class DataBreakpointInfoArguments(BaseSchema):
"""
Arguments for 'dataBreakpointInfo' request.
Note: automatically generated code. Do not edit manually.
"""
__props__ = {
"variablesReference": {
"type": "integer",
"description": "Reference to the Variable container if the data breakpoint is requested for a child of the container."
},
"name": {
"type": "string",
"description": "The name of the Variable's child to obtain data breakpoint information for. If variableReference isn\u2019t provided, this can be an expression."
}
}
__refs__ = set()
__slots__ = list(__props__.keys()) + ['kwargs']
def __init__(self, name, variablesReference=None, update_ids_from_dap=False, **kwargs): # noqa (update_ids_from_dap may be unused)
"""
:param string name: The name of the Variable's child to obtain data breakpoint information for. If variableReference isnt provided, this can be an expression.
:param integer variablesReference: Reference to the Variable container if the data breakpoint is requested for a child of the container.
"""
self.name = name
self.variablesReference = variablesReference
if update_ids_from_dap:
self.variablesReference = self._translate_id_from_dap(self.variablesReference)
self.kwargs = kwargs
@classmethod
def update_dict_ids_from_dap(cls, dct):
if 'variablesReference' in dct:
dct['variablesReference'] = cls._translate_id_from_dap(dct['variablesReference'])
return dct
def to_dict(self, update_ids_to_dap=False): # noqa (update_ids_to_dap may be unused)
name = self.name
variablesReference = self.variablesReference
if update_ids_to_dap:
if variablesReference is not None:
variablesReference = self._translate_id_to_dap(variablesReference)
dct = {
'name': name,
}
if variablesReference is not None:
dct['variablesReference'] = variablesReference
dct.update(self.kwargs)
return dct
@classmethod
def update_dict_ids_to_dap(cls, dct):
if 'variablesReference' in dct:
dct['variablesReference'] = cls._translate_id_to_dap(dct['variablesReference'])
return dct
@register_response('dataBreakpointInfo')
@register
class DataBreakpointInfoResponse(BaseSchema):
"""
Response to 'dataBreakpointInfo' request.
Note: automatically generated code. Do not edit manually.
"""
__props__ = {
"seq": {
"type": "integer",
"description": "Sequence number."
},
"type": {
"type": "string",
"enum": [
"response"
]
},
"request_seq": {
"type": "integer",
"description": "Sequence number of the corresponding request."
},
"success": {
"type": "boolean",
"description": "Outcome of the request."
},
"command": {
"type": "string",
"description": "The command requested."
},
"message": {
"type": "string",
"description": "Contains error message if success == false."
},
"body": {
"type": "object",
"properties": {
"dataId": {
"type": [
"string",
"null"
],
"description": "An identifier for the data on which a data breakpoint can be registered with the setDataBreakpoints request or null if no data breakpoint is available."
},
"description": {
"type": "string",
"description": "UI string that describes on what data the breakpoint is set on or why a data breakpoint is not available."
},
"accessTypes": {
"type": "array",
"items": {
"$ref": "#/definitions/DataBreakpointAccessType"
},
"description": "Optional attribute listing the available access types for a potential data breakpoint. A UI frontend could surface this information."
},
"canPersist": {
"type": "boolean",
"description": "Optional attribute indicating that a potential data breakpoint could be persisted across sessions."
}
},
"required": [
"dataId",
"description"
]
}
}
__refs__ = set(['body'])
__slots__ = list(__props__.keys()) + ['kwargs']
def __init__(self, request_seq, success, command, body, seq=-1, message=None, update_ids_from_dap=False, **kwargs): # noqa (update_ids_from_dap may be unused)
"""
:param string type:
:param integer request_seq: Sequence number of the corresponding request.
:param boolean success: Outcome of the request.
:param string command: The command requested.
:param DataBreakpointInfoResponseBody body:
:param integer seq: Sequence number.
:param string message: Contains error message if success == false.
"""
self.type = 'response'
self.request_seq = request_seq
self.success = success
self.command = command
if body is None:
self.body = DataBreakpointInfoResponseBody()
else:
self.body = DataBreakpointInfoResponseBody(update_ids_from_dap=update_ids_from_dap, **body) if body.__class__ != DataBreakpointInfoResponseBody else body
self.seq = seq
self.message = message
self.kwargs = kwargs
def to_dict(self, update_ids_to_dap=False): # noqa (update_ids_to_dap may be unused)
type = self.type # noqa (assign to builtin)
request_seq = self.request_seq
success = self.success
command = self.command
body = self.body
seq = self.seq
message = self.message
dct = {
'type': type,
'request_seq': request_seq,
'success': success,
'command': command,
'body': body.to_dict(update_ids_to_dap=update_ids_to_dap),
'seq': seq,
}
if message is not None:
dct['message'] = message
dct.update(self.kwargs)
return dct
@register_request('setDataBreakpoints')
@register
class SetDataBreakpointsRequest(BaseSchema):
"""
Replaces all existing data breakpoints with new data breakpoints.
To clear all data breakpoints, specify an empty array.
When a data breakpoint is hit, a 'stopped' event (with reason 'data breakpoint') is generated.
Note: automatically generated code. Do not edit manually.
"""
__props__ = {
"seq": {
"type": "integer",
"description": "Sequence number."
},
"type": {
"type": "string",
"enum": [
"request"
]
},
"command": {
"type": "string",
"enum": [
"setDataBreakpoints"
]
},
"arguments": {
"type": "SetDataBreakpointsArguments"
}
}
__refs__ = set(['arguments'])
__slots__ = list(__props__.keys()) + ['kwargs']
def __init__(self, arguments, seq=-1, update_ids_from_dap=False, **kwargs): # noqa (update_ids_from_dap may be unused)
"""
:param string type:
:param string command:
:param SetDataBreakpointsArguments arguments:
:param integer seq: Sequence number.
"""
self.type = 'request'
self.command = 'setDataBreakpoints'
if arguments is None:
self.arguments = SetDataBreakpointsArguments()
else:
self.arguments = SetDataBreakpointsArguments(update_ids_from_dap=update_ids_from_dap, **arguments) if arguments.__class__ != SetDataBreakpointsArguments else arguments
self.seq = seq
self.kwargs = kwargs
def to_dict(self, update_ids_to_dap=False): # noqa (update_ids_to_dap may be unused)
type = self.type # noqa (assign to builtin)
command = self.command
arguments = self.arguments
seq = self.seq
dct = {
'type': type,
'command': command,
'arguments': arguments.to_dict(update_ids_to_dap=update_ids_to_dap),
'seq': seq,
}
dct.update(self.kwargs)
return dct
@register
class SetDataBreakpointsArguments(BaseSchema):
"""
Arguments for 'setDataBreakpoints' request.
Note: automatically generated code. Do not edit manually.
"""
__props__ = {
"breakpoints": {
"type": "array",
"items": {
"$ref": "#/definitions/DataBreakpoint"
},
"description": "The contents of this array replaces all existing data breakpoints. An empty array clears all data breakpoints."
}
}
__refs__ = set()
__slots__ = list(__props__.keys()) + ['kwargs']
def __init__(self, breakpoints, update_ids_from_dap=False, **kwargs): # noqa (update_ids_from_dap may be unused)
"""
:param array breakpoints: The contents of this array replaces all existing data breakpoints. An empty array clears all data breakpoints.
"""
self.breakpoints = breakpoints
if update_ids_from_dap and self.breakpoints:
for o in self.breakpoints:
DataBreakpoint.update_dict_ids_from_dap(o)
self.kwargs = kwargs
def to_dict(self, update_ids_to_dap=False): # noqa (update_ids_to_dap may be unused)
breakpoints = self.breakpoints
dct = {
'breakpoints': [DataBreakpoint.update_dict_ids_to_dap(o) for o in breakpoints] if (update_ids_to_dap and breakpoints) else breakpoints,
}
dct.update(self.kwargs)
return dct
@register_response('setDataBreakpoints')
@register
class SetDataBreakpointsResponse(BaseSchema):
"""
Response to 'setDataBreakpoints' request.
Returned is information about each breakpoint created by this request.
Note: automatically generated code. Do not edit manually.
"""
__props__ = {
"seq": {
"type": "integer",
"description": "Sequence number."
},
"type": {
"type": "string",
"enum": [
"response"
]
},
"request_seq": {
"type": "integer",
"description": "Sequence number of the corresponding request."
},
"success": {
"type": "boolean",
"description": "Outcome of the request."
},
"command": {
"type": "string",
"description": "The command requested."
},
"message": {
"type": "string",
"description": "Contains error message if success == false."
},
"body": {
"type": "object",
"properties": {
"breakpoints": {
"type": "array",
"items": {
"$ref": "#/definitions/Breakpoint"
},
"description": "Information about the data breakpoints. The array elements correspond to the elements of the input argument 'breakpoints' array."
}
},
"required": [
"breakpoints"
]
}
}
__refs__ = set(['body'])
__slots__ = list(__props__.keys()) + ['kwargs']
def __init__(self, request_seq, success, command, body, seq=-1, message=None, update_ids_from_dap=False, **kwargs): # noqa (update_ids_from_dap may be unused)
"""
:param string type:
:param integer request_seq: Sequence number of the corresponding request.
:param boolean success: Outcome of the request.
:param string command: The command requested.
:param SetDataBreakpointsResponseBody body:
:param integer seq: Sequence number.
:param string message: Contains error message if success == false.
"""
self.type = 'response'
self.request_seq = request_seq
self.success = success
self.command = command
if body is None:
self.body = SetDataBreakpointsResponseBody()
else:
self.body = SetDataBreakpointsResponseBody(update_ids_from_dap=update_ids_from_dap, **body) if body.__class__ != SetDataBreakpointsResponseBody else body
self.seq = seq
self.message = message
self.kwargs = kwargs
def to_dict(self, update_ids_to_dap=False): # noqa (update_ids_to_dap may be unused)
type = self.type # noqa (assign to builtin)
request_seq = self.request_seq
success = self.success
command = self.command
body = self.body
seq = self.seq
message = self.message
dct = {
'type': type,
'request_seq': request_seq,
'success': success,
'command': command,
'body': body.to_dict(update_ids_to_dap=update_ids_to_dap),
'seq': seq,
}
if message is not None:
dct['message'] = message
dct.update(self.kwargs)
return dct
@register_request('continue')
@register
class ContinueRequest(BaseSchema):
@ -6708,7 +7169,7 @@ class SetVariableArguments(BaseSchema):
},
"name": {
"type": "string",
"description": "The name of the variable."
"description": "The name of the variable in the container."
},
"value": {
"type": "string",
@ -6726,7 +7187,7 @@ class SetVariableArguments(BaseSchema):
def __init__(self, variablesReference, name, value, format=None, update_ids_from_dap=False, **kwargs): # noqa (update_ids_from_dap may be unused)
"""
:param integer variablesReference: The reference of the variable container.
:param string name: The name of the variable.
:param string name: The name of the variable in the container.
:param string value: The value of the variable.
:param ValueFormat format: Specifies details on how to format the response value.
"""
@ -9487,13 +9948,17 @@ class Capabilities(BaseSchema):
"supportsTerminateRequest": {
"type": "boolean",
"description": "The debug adapter supports the 'terminate' request."
},
"supportsDataBreakpoints": {
"type": "boolean",
"description": "The debug adapter supports data breakpoints."
}
}
__refs__ = set()
__slots__ = list(__props__.keys()) + ['kwargs']
def __init__(self, supportsConfigurationDoneRequest=None, supportsFunctionBreakpoints=None, supportsConditionalBreakpoints=None, supportsHitConditionalBreakpoints=None, supportsEvaluateForHovers=None, exceptionBreakpointFilters=None, supportsStepBack=None, supportsSetVariable=None, supportsRestartFrame=None, supportsGotoTargetsRequest=None, supportsStepInTargetsRequest=None, supportsCompletionsRequest=None, supportsModulesRequest=None, additionalModuleColumns=None, supportedChecksumAlgorithms=None, supportsRestartRequest=None, supportsExceptionOptions=None, supportsValueFormattingOptions=None, supportsExceptionInfoRequest=None, supportTerminateDebuggee=None, supportsDelayedStackTraceLoading=None, supportsLoadedSourcesRequest=None, supportsLogPoints=None, supportsTerminateThreadsRequest=None, supportsSetExpression=None, supportsTerminateRequest=None, update_ids_from_dap=False, **kwargs): # noqa (update_ids_from_dap may be unused)
def __init__(self, supportsConfigurationDoneRequest=None, supportsFunctionBreakpoints=None, supportsConditionalBreakpoints=None, supportsHitConditionalBreakpoints=None, supportsEvaluateForHovers=None, exceptionBreakpointFilters=None, supportsStepBack=None, supportsSetVariable=None, supportsRestartFrame=None, supportsGotoTargetsRequest=None, supportsStepInTargetsRequest=None, supportsCompletionsRequest=None, supportsModulesRequest=None, additionalModuleColumns=None, supportedChecksumAlgorithms=None, supportsRestartRequest=None, supportsExceptionOptions=None, supportsValueFormattingOptions=None, supportsExceptionInfoRequest=None, supportTerminateDebuggee=None, supportsDelayedStackTraceLoading=None, supportsLoadedSourcesRequest=None, supportsLogPoints=None, supportsTerminateThreadsRequest=None, supportsSetExpression=None, supportsTerminateRequest=None, supportsDataBreakpoints=None, update_ids_from_dap=False, **kwargs): # noqa (update_ids_from_dap may be unused)
"""
:param boolean supportsConfigurationDoneRequest: The debug adapter supports the 'configurationDone' request.
:param boolean supportsFunctionBreakpoints: The debug adapter supports function breakpoints.
@ -9521,6 +9986,7 @@ class Capabilities(BaseSchema):
:param boolean supportsTerminateThreadsRequest: The debug adapter supports the 'terminateThreads' request.
:param boolean supportsSetExpression: The debug adapter supports the 'setExpression' request.
:param boolean supportsTerminateRequest: The debug adapter supports the 'terminate' request.
:param boolean supportsDataBreakpoints: The debug adapter supports data breakpoints.
"""
self.supportsConfigurationDoneRequest = supportsConfigurationDoneRequest
self.supportsFunctionBreakpoints = supportsFunctionBreakpoints
@ -9557,6 +10023,7 @@ class Capabilities(BaseSchema):
self.supportsTerminateThreadsRequest = supportsTerminateThreadsRequest
self.supportsSetExpression = supportsSetExpression
self.supportsTerminateRequest = supportsTerminateRequest
self.supportsDataBreakpoints = supportsDataBreakpoints
self.kwargs = kwargs
@ -9587,6 +10054,7 @@ class Capabilities(BaseSchema):
supportsTerminateThreadsRequest = self.supportsTerminateThreadsRequest
supportsSetExpression = self.supportsSetExpression
supportsTerminateRequest = self.supportsTerminateRequest
supportsDataBreakpoints = self.supportsDataBreakpoints
dct = {
}
if supportsConfigurationDoneRequest is not None:
@ -9641,6 +10109,8 @@ class Capabilities(BaseSchema):
dct['supportsSetExpression'] = supportsSetExpression
if supportsTerminateRequest is not None:
dct['supportsTerminateRequest'] = supportsTerminateRequest
if supportsDataBreakpoints is not None:
dct['supportsDataBreakpoints'] = supportsDataBreakpoints
dct.update(self.kwargs)
return dct
@ -10663,7 +11133,8 @@ class VariablePresentationHint(BaseSchema):
"innerClass",
"interface",
"mostDerivedClass",
"virtual"
"virtual",
"dataBreakpoint"
],
"enumDescriptions": [
"Indicates that the object is a property.",
@ -10675,7 +11146,8 @@ class VariablePresentationHint(BaseSchema):
"Indicates that the object is an inner class.",
"Indicates that the object is an interface.",
"Indicates that the object is the most derived class.",
"Indicates that the object is virtual, that means it is a synthetic object introduced by the adapter for rendering purposes, e.g. an index range for large arrays."
"Indicates that the object is virtual, that means it is a synthetic object introduced by the adapter for rendering purposes, e.g. an index range for large arrays.",
"Indicates that a data breakpoint is registered for the object."
]
},
"attributes": {
@ -10871,6 +11343,103 @@ class FunctionBreakpoint(BaseSchema):
return dct
@register
class DataBreakpointAccessType(BaseSchema):
"""
This enumeration defines all possible access types for data breakpoints.
Note: automatically generated code. Do not edit manually.
"""
READ = 'read'
WRITE = 'write'
READWRITE = 'readWrite'
VALID_VALUES = set(['read', 'write', 'readWrite'])
__props__ = {}
__refs__ = set()
__slots__ = list(__props__.keys()) + ['kwargs']
def __init__(self, update_ids_from_dap=False, **kwargs): # noqa (update_ids_from_dap may be unused)
"""
"""
self.kwargs = kwargs
def to_dict(self, update_ids_to_dap=False): # noqa (update_ids_to_dap may be unused)
dct = {
}
dct.update(self.kwargs)
return dct
@register
class DataBreakpoint(BaseSchema):
"""
Properties of a data breakpoint passed to the setDataBreakpoints request.
Note: automatically generated code. Do not edit manually.
"""
__props__ = {
"dataId": {
"type": "string",
"description": "An id representing the data. This id is returned from the dataBreakpointInfo request."
},
"accessType": {
"description": "The access type of the data.",
"type": "DataBreakpointAccessType"
},
"condition": {
"type": "string",
"description": "An optional expression for conditional breakpoints."
},
"hitCondition": {
"type": "string",
"description": "An optional expression that controls how many hits of the breakpoint are ignored. The backend is expected to interpret the expression as needed."
}
}
__refs__ = set(['accessType'])
__slots__ = list(__props__.keys()) + ['kwargs']
def __init__(self, dataId, accessType=None, condition=None, hitCondition=None, update_ids_from_dap=False, **kwargs): # noqa (update_ids_from_dap may be unused)
"""
:param string dataId: An id representing the data. This id is returned from the dataBreakpointInfo request.
:param DataBreakpointAccessType accessType: The access type of the data.
:param string condition: An optional expression for conditional breakpoints.
:param string hitCondition: An optional expression that controls how many hits of the breakpoint are ignored. The backend is expected to interpret the expression as needed.
"""
self.dataId = dataId
assert accessType in DataBreakpointAccessType.VALID_VALUES
self.accessType = accessType
self.condition = condition
self.hitCondition = hitCondition
self.kwargs = kwargs
def to_dict(self, update_ids_to_dap=False): # noqa (update_ids_to_dap may be unused)
dataId = self.dataId
accessType = self.accessType
condition = self.condition
hitCondition = self.hitCondition
dct = {
'dataId': dataId,
}
if accessType is not None:
dct['accessType'] = accessType
if condition is not None:
dct['condition'] = condition
if hitCondition is not None:
dct['hitCondition'] = hitCondition
dct.update(self.kwargs)
return dct
@register
class Breakpoint(BaseSchema):
"""
@ -11978,7 +12547,9 @@ class StoppedEventBody(BaseSchema):
"exception",
"pause",
"entry",
"goto"
"goto",
"function breakpoint",
"data breakpoint"
]
},
"description": {
@ -12814,6 +13385,117 @@ class SetFunctionBreakpointsResponseBody(BaseSchema):
return dct
@register
class DataBreakpointInfoResponseBody(BaseSchema):
"""
"body" of DataBreakpointInfoResponse
Note: automatically generated code. Do not edit manually.
"""
__props__ = {
"dataId": {
"type": [
"string",
"null"
],
"description": "An identifier for the data on which a data breakpoint can be registered with the setDataBreakpoints request or null if no data breakpoint is available."
},
"description": {
"type": "string",
"description": "UI string that describes on what data the breakpoint is set on or why a data breakpoint is not available."
},
"accessTypes": {
"type": "array",
"items": {
"$ref": "#/definitions/DataBreakpointAccessType"
},
"description": "Optional attribute listing the available access types for a potential data breakpoint. A UI frontend could surface this information."
},
"canPersist": {
"type": "boolean",
"description": "Optional attribute indicating that a potential data breakpoint could be persisted across sessions."
}
}
__refs__ = set()
__slots__ = list(__props__.keys()) + ['kwargs']
def __init__(self, dataId, description, accessTypes=None, canPersist=None, update_ids_from_dap=False, **kwargs): # noqa (update_ids_from_dap may be unused)
"""
:param ['string', 'null'] dataId: An identifier for the data on which a data breakpoint can be registered with the setDataBreakpoints request or null if no data breakpoint is available.
:param string description: UI string that describes on what data the breakpoint is set on or why a data breakpoint is not available.
:param array accessTypes: Optional attribute listing the available access types for a potential data breakpoint. A UI frontend could surface this information.
:param boolean canPersist: Optional attribute indicating that a potential data breakpoint could be persisted across sessions.
"""
self.dataId = dataId
self.description = description
self.accessTypes = accessTypes
if update_ids_from_dap and self.accessTypes:
for o in self.accessTypes:
DataBreakpointAccessType.update_dict_ids_from_dap(o)
self.canPersist = canPersist
self.kwargs = kwargs
def to_dict(self, update_ids_to_dap=False): # noqa (update_ids_to_dap may be unused)
dataId = self.dataId
description = self.description
accessTypes = self.accessTypes
canPersist = self.canPersist
dct = {
'dataId': dataId,
'description': description,
}
if accessTypes is not None:
dct['accessTypes'] = [DataBreakpointAccessType.update_dict_ids_to_dap(o) for o in accessTypes] if (update_ids_to_dap and accessTypes) else accessTypes
if canPersist is not None:
dct['canPersist'] = canPersist
dct.update(self.kwargs)
return dct
@register
class SetDataBreakpointsResponseBody(BaseSchema):
"""
"body" of SetDataBreakpointsResponse
Note: automatically generated code. Do not edit manually.
"""
__props__ = {
"breakpoints": {
"type": "array",
"items": {
"$ref": "#/definitions/Breakpoint"
},
"description": "Information about the data breakpoints. The array elements correspond to the elements of the input argument 'breakpoints' array."
}
}
__refs__ = set()
__slots__ = list(__props__.keys()) + ['kwargs']
def __init__(self, breakpoints, update_ids_from_dap=False, **kwargs): # noqa (update_ids_from_dap may be unused)
"""
:param array breakpoints: Information about the data breakpoints. The array elements correspond to the elements of the input argument 'breakpoints' array.
"""
self.breakpoints = breakpoints
if update_ids_from_dap and self.breakpoints:
for o in self.breakpoints:
Breakpoint.update_dict_ids_from_dap(o)
self.kwargs = kwargs
def to_dict(self, update_ids_to_dap=False): # noqa (update_ids_to_dap may be unused)
breakpoints = self.breakpoints
dct = {
'breakpoints': [Breakpoint.update_dict_ids_to_dap(o) for o in breakpoints] if (update_ids_to_dap and breakpoints) else breakpoints,
}
dct.update(self.kwargs)
return dct
@register
class ContinueResponseBody(BaseSchema):
"""