summaryrefslogtreecommitdiff
path: root/cross-project-tests/debuginfo-tests/dexter/dex/debugger/DebuggerControllers/ConditionalController.py
diff options
context:
space:
mode:
authorStephen Tozer <stephen.tozer@sony.com>2025-07-29 16:34:41 +0100
committerGitHub <noreply@github.com>2025-07-29 16:34:41 +0100
commit83dfdd8f5485f6b50213c88f02878f86b3f53852 (patch)
treee65ef7a1b27707c5ed92ce20a12b28698e6b7695 /cross-project-tests/debuginfo-tests/dexter/dex/debugger/DebuggerControllers/ConditionalController.py
parent9bd2aacc68a1c7632abb9410640400dcc09ef50b (diff)
[Dexter] Add DAP support for Dexter, including lldb-dap (#149394)
This patch adds a new variety of driver to Dexter, allowing it to work with DAP-based interfaces for debuggers. The first concrete instance of this is implemented in this patch, adding support for an `lldb-dap` debugger. This is functionally very similar to the existing LLDB debugger support*, but uses lldb-dap as its executable instead of lldb. This has been tested successfully against the existing feature_test suite, and manually tested against some other inputs; support is essentially complete, although any further DAP-based debuggers may require additional hooks inserted into the base class to deal with any idiosyncrasies they exhibit (as with the several that have been inserted for lldb-dap). NB: There are some small differences resulting from differences between lldb-dap's use of the lldb API and Dexter's use in its lldb driver; one small example of this is when evaluating variables, lldb-dap will try to first use `GetValueForVariablePath` and fallback to `EvaluateExpression` if necessary, while Dexter will always use `EvaluateExpression`; these can give slightly different results, resulting in different output from Dexter for the same input.
Diffstat (limited to 'cross-project-tests/debuginfo-tests/dexter/dex/debugger/DebuggerControllers/ConditionalController.py')
-rw-r--r--cross-project-tests/debuginfo-tests/dexter/dex/debugger/DebuggerControllers/ConditionalController.py2
1 files changed, 1 insertions, 1 deletions
diff --git a/cross-project-tests/debuginfo-tests/dexter/dex/debugger/DebuggerControllers/ConditionalController.py b/cross-project-tests/debuginfo-tests/dexter/dex/debugger/DebuggerControllers/ConditionalController.py
index ac3054c3a0ed..c53f1419ee13 100644
--- a/cross-project-tests/debuginfo-tests/dexter/dex/debugger/DebuggerControllers/ConditionalController.py
+++ b/cross-project-tests/debuginfo-tests/dexter/dex/debugger/DebuggerControllers/ConditionalController.py
@@ -181,7 +181,7 @@ class ConditionalController(DebuggerControllerBase):
)
timed_out = True
- if timed_out:
+ if timed_out or self.debugger.is_finished:
break
step_info = self.debugger.get_step_info(self._watches, self._step_index)