| # 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 |
| """List debuggers tool.""" |
| |
| from dex.debugger.Debuggers import add_debugger_tool_base_arguments |
| from dex.debugger.Debuggers import handle_debugger_tool_base_options |
| from dex.debugger.Debuggers import Debuggers |
| from dex.tools import ToolBase |
| from dex.utils import Timer |
| from dex.utils.Exceptions import DebuggerException, Error |
| from dex.utils.ReturnCode import ReturnCode |
| |
| |
| class Tool(ToolBase): |
| """List all of the potential debuggers that DExTer knows about and whether |
| there is currently a valid interface available for them. |
| """ |
| |
| @property |
| def name(self): |
| return 'DExTer list debuggers' |
| |
| def add_tool_arguments(self, parser, defaults): |
| parser.description = Tool.__doc__ |
| add_debugger_tool_base_arguments(parser, defaults) |
| |
| def handle_options(self, defaults): |
| handle_debugger_tool_base_options(self.context, defaults) |
| |
| def go(self) -> ReturnCode: |
| with Timer('list debuggers'): |
| try: |
| Debuggers(self.context).list() |
| except DebuggerException as e: |
| raise Error(e) |
| return ReturnCode.OK |