11364750dSJames Henderson# DExTer : Debugging Experience Tester 21364750dSJames Henderson# ~~~~~~ ~ ~~ ~ ~~ 31364750dSJames Henderson# 41364750dSJames Henderson# Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 51364750dSJames Henderson# See https://llvm.org/LICENSE.txt for license information. 61364750dSJames Henderson# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 71364750dSJames Henderson"""Command to instruct the debugger to inspect the value of some set of 81364750dSJames Hendersonexpressions on the current source line. 91364750dSJames Henderson""" 101364750dSJames Henderson 111364750dSJames Hendersonfrom dex.command.CommandBase import CommandBase 121364750dSJames Henderson 131364750dSJames Henderson 141364750dSJames Hendersonclass DexWatch(CommandBase): 151364750dSJames Henderson """[Deprecated] Evaluate each given `expression` when the debugger steps onto the 161364750dSJames Henderson line this command is found on 171364750dSJames Henderson 181364750dSJames Henderson DexWatch(*expressions) 191364750dSJames Henderson 201364750dSJames Henderson See Commands.md for more info. 211364750dSJames Henderson """ 221364750dSJames Henderson 231364750dSJames Henderson def __init__(self, *args): 241364750dSJames Henderson if not args: 25*f98ee40fSTobias Hieta raise TypeError("expected some arguments") 261364750dSJames Henderson 271364750dSJames Henderson for arg in args: 281364750dSJames Henderson if not isinstance(arg, str): 29*f98ee40fSTobias Hieta raise TypeError("invalid argument type") 301364750dSJames Henderson 311364750dSJames Henderson self._args = args 321364750dSJames Henderson super(DexWatch, self).__init__() 331364750dSJames Henderson 341364750dSJames Henderson @staticmethod 351364750dSJames Henderson def get_name(): 361364750dSJames Henderson return __class__.__name__ 371364750dSJames Henderson 381364750dSJames Henderson def eval(self, debugger): 391364750dSJames Henderson return {arg: debugger.evaluate_expression(arg) for arg in self._args} 40