| # 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 |
| """Command to instruct the debugger to inspect the value of some set of |
| expressions on the current source line. |
| """ |
| |
| from dex.command.CommandBase import CommandBase |
| |
| |
| class DexWatch(CommandBase): |
| """[Deprecated] Evaluate each given `expression` when the debugger steps onto the |
| line this command is found on |
| |
| DexWatch(*expressions) |
| |
| See Commands.md for more info. |
| """ |
| |
| def __init__(self, *args): |
| if not args: |
| raise TypeError('expected some arguments') |
| |
| for arg in args: |
| if not isinstance(arg, str): |
| raise TypeError('invalid argument type') |
| |
| self._args = args |
| super(DexWatch, self).__init__() |
| |
| @staticmethod |
| def get_name(): |
| return __class__.__name__ |
| |
| def eval(self, debugger): |
| return {arg: debugger.evaluate_expression(arg) for arg in self._args} |