[llvm-branch-commits] [llvm] [Dexter] Add DexStepFunction and DexContinue skeletons (PR #152720)
Stephen Tozer via llvm-branch-commits
llvm-branch-commits at lists.llvm.org
Mon Aug 11 04:37:19 PDT 2025
================
@@ -0,0 +1,44 @@
+# DExTer : Debugging Experience Tester
+# ~~~~~~ ~ ~~ ~ ~~
+#
+# Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+# See https://llvm.org/LICENSE.txt for license information.
+# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+"""A Command that tells dexter to set a breakpoint which, after hitting,
+signals that the debugger shuold 'continue' until another is hit. Continuing
+out of a function being stepped through with DexStepFunction is well defined:
+stepping will resume in other functions tracked further down the stacktrace.
+
+NOTE: Only supported for DAP based debuggers.
+"""
+
+from dex.command.CommandBase import CommandBase
+
+
+class DexContinue(CommandBase):
+ def __init__(self, *args, **kwargs):
+ if len(args) == 0:
+ self.expression = None
+ self.values = []
+ elif len(args) == 1:
+ raise TypeError("expected 0 or at least 2 positional arguments")
+ else:
+ self.expression = args[0]
+ self.values = [str(arg) for arg in args[1:]]
+ self.from_line = kwargs.pop("from_line", 1)
+ self.to_line = kwargs.pop("to_line", 999999)
+ self.hit_count = kwargs.pop("hit_count", None)
+ if kwargs:
+ raise TypeError("unexpected named args: {}".format(", ".join(kwargs)))
+ super(DexContinue, self).__init__()
+
+ def eval(self):
+ raise NotImplementedError("DexContinue commands cannot be evaled.")
----------------
SLTozer wrote:
Nit, I don't know how I feel about this particular adjectivalisation, maybe we could avoid it by changing it to "Cannot eval DexContinue commands" or similar, or maybe you can just ignore this comment as being a matter of taste!
https://github.com/llvm/llvm-project/pull/152720
More information about the llvm-branch-commits
mailing list