summaryrefslogtreecommitdiff
path: root/cross-project-tests
diff options
context:
space:
mode:
authorJohn Harrison <harjohn@google.com>2025-11-18 00:42:19 -0800
committerGitHub <noreply@github.com>2025-11-18 00:42:19 -0800
commit9f6932138569a0c2267076cb17022f58f07059ab (patch)
treee46d8a472a0140efc69d44712bc97d9117c15cfd /cross-project-tests
parenta61889580e5244a7a25610bc23b9a0d7f69e1200 (diff)
Improve error response message parsing for DAP evaluate requests. (#168430)
Updated the evaluate handler to check for DAP ErrorResponse bodies, which are used to display user errors if a request fails. This was updated in PR https://github.com/llvm/llvm-project/pull/167720 This should fix https://lab.llvm.org/buildbot/#/builders/163
Diffstat (limited to 'cross-project-tests')
-rw-r--r--cross-project-tests/debuginfo-tests/dexter/dex/debugger/DAP.py14
1 files changed, 12 insertions, 2 deletions
diff --git a/cross-project-tests/debuginfo-tests/dexter/dex/debugger/DAP.py b/cross-project-tests/debuginfo-tests/dexter/dex/debugger/DAP.py
index a849990678d4..792e0be629fc 100644
--- a/cross-project-tests/debuginfo-tests/dexter/dex/debugger/DAP.py
+++ b/cross-project-tests/debuginfo-tests/dexter/dex/debugger/DAP.py
@@ -335,6 +335,7 @@ class DAP(DebuggerBase, metaclass=abc.ABCMeta):
self._proc.stdin.flush()
return self.seq
+ @staticmethod
def _handle_message(
message: dict, debugger_state: DAPDebuggerState, logger: Logger
):
@@ -419,6 +420,7 @@ class DAP(DebuggerBase, metaclass=abc.ABCMeta):
request_seq = message["request_seq"]
debugger_state.set_response(request_seq, message)
+ @staticmethod
def _colorize_dap_message(message: dict) -> dict:
colorized_message = copy.deepcopy(message)
if colorized_message["type"] == "event":
@@ -432,6 +434,7 @@ class DAP(DebuggerBase, metaclass=abc.ABCMeta):
colorized_message["command"] = f"<y>{colorized_message['command']}</>"
return colorized_message
+ @staticmethod
def _read_dap_output(
proc: subprocess.Popen,
debugger_state: DAPDebuggerState,
@@ -454,6 +457,7 @@ class DAP(DebuggerBase, metaclass=abc.ABCMeta):
DAP._handle_message(message, debugger_state, logger)
buffer = rest[content_length:]
+ @staticmethod
def _read_dap_err(proc: subprocess.Popen, logger: Logger):
while True:
err: bytes = proc.stderr.readline()
@@ -930,10 +934,16 @@ class DAP(DebuggerBase, metaclass=abc.ABCMeta):
)
)
eval_response = self._await_response(eval_req_id)
+ result: str = ""
if not eval_response["success"]:
- result: str = eval_response["message"]
+ if eval_response["body"].get("error", None):
+ result = eval_response["body"]["error"]["format"]
+ elif eval_response["message"]:
+ result = eval_response["message"]
+ else:
+ result = "<unable to evaluate expression>"
else:
- result: str = eval_response["body"]["result"]
+ result = eval_response["body"]["result"]
type_str = eval_response["body"].get("type")
return self._evaluate_result_value(expression, result, type_str)