================ @@ -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 _______________________________________________ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits