Handle supportsVariablePaging in DAP

A bug report about the supportsVariablePaging capability in DAP
resulted in a clarification: when this capability is not present, DAP
implementations should ignore the paging parameters to the "variables"
request.  This patch implements this clarification.
This commit is contained in:
Tom Tromey
2023-05-26 13:35:52 -06:00
parent 5ad513ae62
commit 59e75852dd
3 changed files with 24 additions and 8 deletions
+6 -1
View File
@@ -20,7 +20,7 @@ import gdb.printing
from typing import Optional
from .frames import frame_for_id
from .server import capability, request
from .server import capability, request, client_bool_capability
from .startup import send_gdb_with_response, in_gdb_thread
from .varref import find_variable, VariableReference
@@ -98,6 +98,11 @@ def _variables(ref, start, count):
# Note that we ignore the 'filter' field. That seems to be
# specific to javascript.
def variables(*, variablesReference: int, start: int = 0, count: int = 0, **args):
# This behavior was clarified here:
# https://github.com/microsoft/debug-adapter-protocol/pull/394
if not client_bool_capability("supportsVariablePaging"):
start = 0
count = 0
result = send_gdb_with_response(
lambda: _variables(variablesReference, start, count)
)