From 8cf7ff87014982662d147d36abd51a2647f0d55e Mon Sep 17 00:00:00 2001 From: Joachim Ansorg Date: Wed, 8 Jan 2025 10:26:56 +0100 Subject: [PATCH 01/10] Add bytes and asAddress properties to the DataBreakpointInfo request --- .../eclipse/lsp4j/debug/DebugProtocol.xtend | 35 ++++++++++++++++++- 1 file changed, 34 insertions(+), 1 deletion(-) diff --git a/org.eclipse.lsp4j.debug/src/main/java/org/eclipse/lsp4j/debug/DebugProtocol.xtend b/org.eclipse.lsp4j.debug/src/main/java/org/eclipse/lsp4j/debug/DebugProtocol.xtend index 7cb270857..8e5aaa63f 100644 --- a/org.eclipse.lsp4j.debug/src/main/java/org/eclipse/lsp4j/debug/DebugProtocol.xtend +++ b/org.eclipse.lsp4j.debug/src/main/java/org/eclipse/lsp4j/debug/DebugProtocol.xtend @@ -1280,7 +1280,8 @@ class DataBreakpointInfoArguments { /** * The name of the Variable's child to obtain data breakpoint information for. *

- * If variablesReference isn't specified, this can be an expression. + * If variablesReference isn't specified, this can be an expression, or an address + * if `asAddress` is also true. */ @NonNull String name; @@ -1294,6 +1295,29 @@ class DataBreakpointInfoArguments { * Since 1.59 */ Integer frameId; + /** + * 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. + *

+ * This is an optional property. + *

+ * Since 1.66 + */ + Integer bytes; + /** + * 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. + *

+ * This is an optional property. + *

+ * Since 1.66 + */ + Boolean asAddress; /** * The mode of the desired breakpoint. If defined, this must be one of the `breakpointModes` * the debug adapter advertised in its `Capabilities`. @@ -2709,6 +2733,15 @@ class Capabilities { * Since 1.51 */ Boolean supportsSingleThreadExecutionRequests; + /** + * The debug adapter supports the 'asAddress' and 'bytes' fields in the 'dataBreakpointInfo' + * request. + *

+ * This is an optional property. + *

+ * Since 1.66 + */ + Boolean supportsDataBreakpointBytes; /** * 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. From f2f56ecdb6fcf8a4c61d3029809841ad035e2dde Mon Sep 17 00:00:00 2001 From: Joachim Ansorg Date: Wed, 8 Jan 2025 10:26:56 +0100 Subject: [PATCH 02/10] Add returnValue as a well-known Scope.presentationHint 1.66.x --- .../main/java/org/eclipse/lsp4j/debug/DebugProtocol.xtend | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/org.eclipse.lsp4j.debug/src/main/java/org/eclipse/lsp4j/debug/DebugProtocol.xtend b/org.eclipse.lsp4j.debug/src/main/java/org/eclipse/lsp4j/debug/DebugProtocol.xtend index 8e5aaa63f..098b418ab 100644 --- a/org.eclipse.lsp4j.debug/src/main/java/org/eclipse/lsp4j/debug/DebugProtocol.xtend +++ b/org.eclipse.lsp4j.debug/src/main/java/org/eclipse/lsp4j/debug/DebugProtocol.xtend @@ -3352,6 +3352,12 @@ interface ScopePresentationHint { * Scope contains registers. Only a single 'registers' scope should be returned from a 'scopes' request. */ public static final String REGISTERS = "registers"; + /** + * Scope contains one or more return values. + *

+ * Since 1.67 + */ + public static final String RETURN_VALUE = "returnValue"; } /** From f8b2066548086b98111433e81b12651d92e50899 Mon Sep 17 00:00:00 2001 From: Joachim Ansorg Date: Wed, 8 Jan 2025 10:26:56 +0100 Subject: [PATCH 03/10] Add line, column, and source location attributions to EvaluateArguments --- .../eclipse/lsp4j/debug/DebugProtocol.xtend | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/org.eclipse.lsp4j.debug/src/main/java/org/eclipse/lsp4j/debug/DebugProtocol.xtend b/org.eclipse.lsp4j.debug/src/main/java/org/eclipse/lsp4j/debug/DebugProtocol.xtend index 098b418ab..bb012525a 100644 --- a/org.eclipse.lsp4j.debug/src/main/java/org/eclipse/lsp4j/debug/DebugProtocol.xtend +++ b/org.eclipse.lsp4j.debug/src/main/java/org/eclipse/lsp4j/debug/DebugProtocol.xtend @@ -2022,6 +2022,34 @@ class EvaluateArguments { * This is an optional property. */ Integer frameId; + /** + * The contextual line where the expression should be evaluated. In the 'hover' context, this should be set to the + * start of the expression being hovered. + *

+ * This is an optional property. + *

+ * Since 1.67 + */ + Integer line; + /** + * The contextual column where the expression should be evaluated. This may be provided if `line` is also provided. + *

+ * It is measured in UTF-16 code units and the client capability `columnsStartAt1` determines whether + * it is 0- or 1-based. + *

+ * This is an optional property. + *

+ * Since 1.67 + */ + Integer column; + /** + * The contextual source in which the `line` is found. This must be provided if `line` is provided. + *

+ * This is an optional property. + *

+ * Since 1.67 + */ + Source source; /** * The context in which the evaluate request is used. *

From 34d15fe8c977f798295f162c0590b05c8db285ca Mon Sep 17 00:00:00 2001 From: Joachim Ansorg Date: Wed, 8 Jan 2025 10:26:56 +0100 Subject: [PATCH 04/10] Fix typographic errors in StackFrame.canRestart --- .../src/main/java/org/eclipse/lsp4j/debug/DebugProtocol.xtend | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/org.eclipse.lsp4j.debug/src/main/java/org/eclipse/lsp4j/debug/DebugProtocol.xtend b/org.eclipse.lsp4j.debug/src/main/java/org/eclipse/lsp4j/debug/DebugProtocol.xtend index bb012525a..d342b7e52 100644 --- a/org.eclipse.lsp4j.debug/src/main/java/org/eclipse/lsp4j/debug/DebugProtocol.xtend +++ b/org.eclipse.lsp4j.debug/src/main/java/org/eclipse/lsp4j/debug/DebugProtocol.xtend @@ -3233,8 +3233,8 @@ class StackFrame { */ Integer endColumn; /** - * Indicates whether this frame can be restarted with the 'restart' request. - * Clients should only use this if the debug adapter supports the 'restart' request + * Indicates whether this frame can be restarted with the `restartFrame` request. + * Clients should only use this if the debug adapter supports the `restart` request * and the corresponding capability {@link Capabilities#getSupportsRestartRequest} * is {@code true}. If a debug adapter has this capability, then `canRestart` defaults * to `true` if the property is absent. From 925c5a2ce18bd3841802749879e12f947018f6c9 Mon Sep 17 00:00:00 2001 From: Joachim Ansorg Date: Wed, 8 Jan 2025 10:26:56 +0100 Subject: [PATCH 05/10] Add locationReferences to Variable-related data types to allow navigation to declarations, and a corresponding locations request. --- .../eclipse/lsp4j/debug/DebugProtocol.xtend | 137 ++++++++++++++++++ .../debug/services/IDebugProtocolServer.java | 12 ++ 2 files changed, 149 insertions(+) diff --git a/org.eclipse.lsp4j.debug/src/main/java/org/eclipse/lsp4j/debug/DebugProtocol.xtend b/org.eclipse.lsp4j.debug/src/main/java/org/eclipse/lsp4j/debug/DebugProtocol.xtend index d342b7e52..96b2a5241 100644 --- a/org.eclipse.lsp4j.debug/src/main/java/org/eclipse/lsp4j/debug/DebugProtocol.xtend +++ b/org.eclipse.lsp4j.debug/src/main/java/org/eclipse/lsp4j/debug/DebugProtocol.xtend @@ -305,6 +305,19 @@ class OutputEventArguments { * This is an optional property. */ Object data; + /** + * A reference that allows the client to request the location where the new value is declared. For example, + * if the logged value is function pointer, the adapter may be able to look up the function's location. This should + * be present only if the adapter is likely to be able to resolve the location. + *

+ * This reference shares the same lifetime as the `variablesReference`. + * See 'Lifetime of Object References' in the Overview section for details. + *

+ * This is an optional property. + *

+ * Since 1.68 + */ + Integer locationReference; } /** @@ -1790,6 +1803,19 @@ class SetVariableResponse { * Since 1.63 */ String memoryReference; + /** + * A reference that allows the client to request the location where the new value is declared. For example, + * if the new value is function pointer, the adapter may be able to look up the function's location. This should be + * present only if the adapter is likely to be able to resolve the location. + *

+ * This reference shares the same lifetime as the `variablesReference`. + * See 'Lifetime of Object References' in the Overview section for details. + *

+ * This is an optional property. + *

+ * Since 1.68 + */ + Integer valueLocationReference; } /** @@ -2003,6 +2029,19 @@ class EvaluateResponse { * This is an optional property. */ String memoryReference; + /** + * A reference that allows the client to request the location where the returned value is declared. For example, + * if a function pointer is returned, the adapter may be able to look up the function's location. + * This should be present only if the adapter is likely to be able to resolve the location. + *

+ * This reference shares the same lifetime as the `variablesReference`. + * See 'Lifetime of Object References' in the Overview section for details. + *

+ * This is an optional property. + *

+ * Since 1.68 + */ + Integer valueLocationReference; } /** @@ -2169,6 +2208,19 @@ class SetExpressionResponse { * Since 1.63 */ String memoryReference; + /** + * A reference that allows the client to request the location where the new value is declared. For example, + * if the new value is function pointer, the adapter may be able to look up the function's location. This should be + * present only if the adapter is likely to be able to resolve the location. + *

+ * This reference shares the same lifetime as the `variablesReference`. + * See 'Lifetime of Object References' in the Overview section for details. + *

+ * This is an optional property. + *

+ * Since 1.68 + */ + Integer valueLocationReference; } /** @@ -2510,6 +2562,66 @@ class DisassembleArguments { Boolean resolveSymbols; } + +/** + * Arguments for 'locations' request. + *

+ * Since 1.68 + */ +@JsonRpcData +class LocationsArguments { + /** + * Location reference to resolve. + */ + @NonNull + Integer locationReference; +} + +/** + * Response to 'locations' request. + *

+ * Since 1.68 + */ +@JsonRpcData +class LocationsResponse { + /** + * The source containing the location; either `source.path` or + * `source.sourceReference` must be specified. + */ + @NonNull + Source source; + /** + * The line number of the location. The client capability `linesStartAt1` + * determines whether it is 0- or 1-based. + */ + @NonNull + Integer line; + /** + * Position of the location within the `line`. It is measured in UTF-16 code + * units and the client capability `columnsStartAt1` determines whether it + * is 0- or 1-based. If no column is given, the first position in the start + * line is assumed. + *

+ * This is an optional property. + */ + Integer column; + /** + * End line of the location, present if the location refers to a range. The + * client capability `linesStartAt1` determines whether it is 0- or 1-based. + *

+ * This is an optional property. + */ + Integer endLine; + /** + * End position of the location within `endLine`, present if the location + * refers to a range. It is measured in UTF-16 code units and the client + * capability `columnsStartAt1` determines whether it is 0- or 1-based. + *

+ * This is an optional property. + */ + Integer endColumn; +} + /** * Information about the capabilities of a debug adapter. */ @@ -3480,6 +3592,31 @@ class Variable { * This is an optional property. */ String memoryReference; + /** + * A reference that allows the client to request the location where the variable is declared. This should be + * present only if the adapter is likely to be able to resolve the location. + *

+ * This reference shares the same lifetime as the `variablesReference`. + * See 'Lifetime of Object References' in the Overview section for details. + *

+ * This is an optional property. + *

+ * Since 1.68 + */ + Integer declarationLocationReference; + /** + * A reference that allows the client to request the location where the variable's value is declared. For example, + * if the variable contains a function pointer, the adapter may be able to look up the function's location. + * This should be present only if the adapter is likely to be able to resolve the location. + *

+ * This reference shares the same lifetime as the `variablesReference`. + * See 'Lifetime of Object References' in the Overview section for details. + *

+ * This is an optional property. + *

+ * Since 1.68 + */ + Integer valueLocationReference; } /** diff --git a/org.eclipse.lsp4j.debug/src/main/java/org/eclipse/lsp4j/debug/services/IDebugProtocolServer.java b/org.eclipse.lsp4j.debug/src/main/java/org/eclipse/lsp4j/debug/services/IDebugProtocolServer.java index fd620d3b5..813dd1e4b 100644 --- a/org.eclipse.lsp4j.debug/src/main/java/org/eclipse/lsp4j/debug/services/IDebugProtocolServer.java +++ b/org.eclipse.lsp4j.debug/src/main/java/org/eclipse/lsp4j/debug/services/IDebugProtocolServer.java @@ -39,6 +39,8 @@ import org.eclipse.lsp4j.debug.InitializeRequestArguments; import org.eclipse.lsp4j.debug.LoadedSourcesArguments; import org.eclipse.lsp4j.debug.LoadedSourcesResponse; +import org.eclipse.lsp4j.debug.LocationsArguments; +import org.eclipse.lsp4j.debug.LocationsResponse; import org.eclipse.lsp4j.debug.ModulesArguments; import org.eclipse.lsp4j.debug.ModulesResponse; import org.eclipse.lsp4j.debug.NextArguments; @@ -703,4 +705,14 @@ default CompletableFuture writeMemory(WriteMemoryArguments default CompletableFuture disassemble(DisassembleArguments args) { throw new UnsupportedOperationException(); } + + /** + * Looks up information about a location reference previously returned by the debug adapter. + *

+ * Since 1.68 + */ + @JsonRequest + default CompletableFuture locations(LocationsArguments args) { + throw new UnsupportedOperationException(); + } } From bf7a554dbb610efc6fd2176829d0a136eec954e6 Mon Sep 17 00:00:00 2001 From: Joachim Ansorg Date: Wed, 8 Jan 2025 10:26:56 +0100 Subject: [PATCH 06/10] Add supportsANSIStyling capabilities to allow colorization of text from debug adapters. --- .../eclipse/lsp4j/debug/DebugProtocol.xtend | 25 ++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/org.eclipse.lsp4j.debug/src/main/java/org/eclipse/lsp4j/debug/DebugProtocol.xtend b/org.eclipse.lsp4j.debug/src/main/java/org/eclipse/lsp4j/debug/DebugProtocol.xtend index 96b2a5241..8d11a0228 100644 --- a/org.eclipse.lsp4j.debug/src/main/java/org/eclipse/lsp4j/debug/DebugProtocol.xtend +++ b/org.eclipse.lsp4j.debug/src/main/java/org/eclipse/lsp4j/debug/DebugProtocol.xtend @@ -261,7 +261,13 @@ class OutputEventArguments { String category; /** * The output to report. - */ + *

+ * ANSI escape sequences may be used to influence text color and styling if `supportsANSIStyling` is present in + * both the adapter's `Capabilities` and the client's `InitializeRequestArguments`. A client may strip any + * unrecognized ANSI sequences. + *

+ * If the `supportsANSIStyling` capabilities are not both true, then the client should display the output literally. + */ @NonNull String output; /** @@ -915,6 +921,15 @@ class InitializeRequestArguments { * Since 1.59 */ Boolean supportsStartDebuggingRequest; + /** + * The client will interpret ANSI escape sequences in the display of `OutputEvent.output` and `Variable.value` + * fields when `Capabilities.supportsANSIStyling` is also enabled. + *

+ * This is an optional property. + *

+ * Since 1.69 + */ + Boolean supportsANSIStyling; } /** @@ -2896,6 +2911,14 @@ class Capabilities { * Since 1.65 */ BreakpointMode[] breakpointModes; + /** + * The debug adapter supports ANSI escape sequences in styling of `OutputEvent.output` and `Variable.value` fields. + *

+ * This is an optional property. + *

+ * Since 1.69 + */ + Boolean supportsANSIStyling; } /** From a3216f0b9826b9faf4f5ad4165a84caea50e58af Mon Sep 17 00:00:00 2001 From: Jonah Graham Date: Mon, 13 Jan 2025 11:59:01 -0500 Subject: [PATCH 07/10] Clarify meaning of "system process" --- .../src/main/java/org/eclipse/lsp4j/debug/DebugProtocol.xtend | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/org.eclipse.lsp4j.debug/src/main/java/org/eclipse/lsp4j/debug/DebugProtocol.xtend b/org.eclipse.lsp4j.debug/src/main/java/org/eclipse/lsp4j/debug/DebugProtocol.xtend index 8d11a0228..52945cabe 100644 --- a/org.eclipse.lsp4j.debug/src/main/java/org/eclipse/lsp4j/debug/DebugProtocol.xtend +++ b/org.eclipse.lsp4j.debug/src/main/java/org/eclipse/lsp4j/debug/DebugProtocol.xtend @@ -494,7 +494,9 @@ class ProcessEventArguments { @NonNull String name; /** - * The system process id of the debugged process. This property is missing for non-system processes. + * The process ID of the debugged process, as assigned by the operating system. + * This property should be omitted for logical processes that do not map to + * operating system processes on the machine. *

* This is an optional property. */ From 39eb3f73892694619ad6bbd115fa3fddf9f7b5a3 Mon Sep 17 00:00:00 2001 From: Jonah Graham Date: Mon, 13 Jan 2025 12:00:33 -0500 Subject: [PATCH 08/10] Clarify of variableReference after setVariable --- .../main/java/org/eclipse/lsp4j/debug/DebugProtocol.xtend | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/org.eclipse.lsp4j.debug/src/main/java/org/eclipse/lsp4j/debug/DebugProtocol.xtend b/org.eclipse.lsp4j.debug/src/main/java/org/eclipse/lsp4j/debug/DebugProtocol.xtend index 52945cabe..8868d8407 100644 --- a/org.eclipse.lsp4j.debug/src/main/java/org/eclipse/lsp4j/debug/DebugProtocol.xtend +++ b/org.eclipse.lsp4j.debug/src/main/java/org/eclipse/lsp4j/debug/DebugProtocol.xtend @@ -1782,7 +1782,10 @@ class SetVariableResponse { /** * If `variablesReference` is > 0, the new value is structured and its children can be retrieved by passing * `variablesReference` to the `variables` request as long as execution remains suspended. - * See 'Lifetime of Object References' in the {@link DebugProtocol#Overview} section for details. + * See 'Lifetime of Object References' in the Overview section for details. + *

+ * If this property is included in the response, any `variablesReference` previously associated with + * the updated variable, and those of its children, are no longer valid. *

* This is an optional property. */ From 6e7761810574ee42d7040cc8b3041400efb51a27 Mon Sep 17 00:00:00 2001 From: Jonah Graham Date: Mon, 13 Jan 2025 12:01:54 -0500 Subject: [PATCH 09/10] Fix inconsistency in "evaluate" description --- .../org/eclipse/lsp4j/debug/services/IDebugProtocolServer.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/org.eclipse.lsp4j.debug/src/main/java/org/eclipse/lsp4j/debug/services/IDebugProtocolServer.java b/org.eclipse.lsp4j.debug/src/main/java/org/eclipse/lsp4j/debug/services/IDebugProtocolServer.java index 813dd1e4b..62943c3a6 100644 --- a/org.eclipse.lsp4j.debug/src/main/java/org/eclipse/lsp4j/debug/services/IDebugProtocolServer.java +++ b/org.eclipse.lsp4j.debug/src/main/java/org/eclipse/lsp4j/debug/services/IDebugProtocolServer.java @@ -594,7 +594,7 @@ default CompletableFuture loadedSources(LoadedSourcesArgu } /** - * Evaluates the given expression in the context of the topmost stack frame. + * Evaluates the given expression in the context of a stack frame. *

* The expression has access to any variables and arguments that are in scope. */ From ac74e5ba57b1a6dcf119a8ba764a488f95240af1 Mon Sep 17 00:00:00 2001 From: Joachim Ansorg Date: Wed, 8 Jan 2025 10:30:08 +0100 Subject: [PATCH 10/10] Update DAP version to 1.69.0 --- CHANGELOG.md | 2 ++ README.md | 2 +- .../src/main/java/org/eclipse/lsp4j/debug/DebugProtocol.xtend | 2 +- .../org/eclipse/lsp4j/debug/services/IDebugProtocolClient.java | 2 +- .../org/eclipse/lsp4j/debug/services/IDebugProtocolServer.java | 2 +- 5 files changed, 6 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b6e072763..4f2830deb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,8 @@ ### v0.24.0 (TBD) +* Implemented DAP version 1.69.0 + Fixed issues: Breaking API changes: diff --git a/README.md b/README.md index c1d8186b2..00daa3544 100644 --- a/README.md +++ b/README.md @@ -61,7 +61,7 @@ The Maven Repositories, p2 Update Sites, and the Snapshots contain _signed jars_ ### Supported DAP Versions - * LSP4J 0.24.* _(Next release)_ → DAP 1.65.0 + * LSP4J 0.24.* _(Next release)_ → DAP 1.69.0 * LSP4J 0.23.* → DAP 1.65.0 * LSP4J 0.22.* → DAP 1.60.0 * LSP4J 0.21.* → DAP 1.60.0 diff --git a/org.eclipse.lsp4j.debug/src/main/java/org/eclipse/lsp4j/debug/DebugProtocol.xtend b/org.eclipse.lsp4j.debug/src/main/java/org/eclipse/lsp4j/debug/DebugProtocol.xtend index 8868d8407..3124c5408 100644 --- a/org.eclipse.lsp4j.debug/src/main/java/org/eclipse/lsp4j/debug/DebugProtocol.xtend +++ b/org.eclipse.lsp4j.debug/src/main/java/org/eclipse/lsp4j/debug/DebugProtocol.xtend @@ -28,7 +28,7 @@ class DebugProtocol { /** * Version of Debug Protocol */ - public static final String SCHEMA_VERSION = "1.65.0"; + public static final String SCHEMA_VERSION = "1.69.0"; /** * Refer to the Debug Adapter Protocol's diff --git a/org.eclipse.lsp4j.debug/src/main/java/org/eclipse/lsp4j/debug/services/IDebugProtocolClient.java b/org.eclipse.lsp4j.debug/src/main/java/org/eclipse/lsp4j/debug/services/IDebugProtocolClient.java index 404050acf..06b17817a 100644 --- a/org.eclipse.lsp4j.debug/src/main/java/org/eclipse/lsp4j/debug/services/IDebugProtocolClient.java +++ b/org.eclipse.lsp4j.debug/src/main/java/org/eclipse/lsp4j/debug/services/IDebugProtocolClient.java @@ -47,7 +47,7 @@ public interface IDebugProtocolClient { /** * Version of Debug Protocol */ - String SCHEMA_VERSION = "1.65.0"; + String SCHEMA_VERSION = "1.69.0"; /** * This event indicates that the debug adapter is ready to accept configuration diff --git a/org.eclipse.lsp4j.debug/src/main/java/org/eclipse/lsp4j/debug/services/IDebugProtocolServer.java b/org.eclipse.lsp4j.debug/src/main/java/org/eclipse/lsp4j/debug/services/IDebugProtocolServer.java index 62943c3a6..7d99f2643 100644 --- a/org.eclipse.lsp4j.debug/src/main/java/org/eclipse/lsp4j/debug/services/IDebugProtocolServer.java +++ b/org.eclipse.lsp4j.debug/src/main/java/org/eclipse/lsp4j/debug/services/IDebugProtocolServer.java @@ -93,7 +93,7 @@ public interface IDebugProtocolServer { /** * Version of Debug Protocol */ - String SCHEMA_VERSION = "1.65.0"; + String SCHEMA_VERSION = "1.69.0"; /** * The 'cancel' request is used by the client in two situations: