| from abc import ABCMeta, abstractmethod |
| from typing import Optional |
| |
| import lldb |
| |
| |
| class ScriptedCommand(metaclass=ABCMeta): |
| """ |
| The base class for a scripted (raw) command. |
| |
| A raw command receives the unparsed argument string exactly as the user |
| typed it, and is responsible for any parsing it needs. For a command |
| with a table-driven option/argument parser, see `ParsedCommand` instead. |
| Register it with `command script add -c <ClassName> ...`. |
| |
| Most of the base class methods are `@abstractmethod` that need to be |
| overwritten by the inheriting class. |
| """ |
| |
| def __init__(self, debugger: lldb.SBDebugger): |
| """Construct a scripted command. |
| |
| Args: |
| debugger (lldb.SBDebugger): The debugger this command is being |
| added to. |
| """ |
| pass |
| |
| @abstractmethod |
| def __call__( |
| self, |
| debugger: lldb.SBDebugger, |
| args: str, |
| exe_ctx: lldb.SBExecutionContext, |
| result: lldb.SBCommandReturnObject, |
| ) -> None: |
| """Execute the command. |
| |
| Args: |
| debugger (lldb.SBDebugger): The debugger the command runs |
| against. |
| args (str): The raw, unparsed argument string. |
| exe_ctx (lldb.SBExecutionContext): The execution context. |
| result (lldb.SBCommandReturnObject): Write command output/errors |
| here. |
| """ |
| pass |
| |
| def get_short_help(self) -> Optional[str]: |
| """A one-line description shown by `help`. |
| |
| Returns: |
| str: The short help string. |
| """ |
| pass |
| |
| def get_long_help(self) -> Optional[str]: |
| """The full help text shown by `help <command>`. |
| |
| Returns: |
| str: The long help string. |
| """ |
| pass |
| |
| def get_flags(self) -> int: |
| """Command flags (a bitmask of `lldb.eCommandRequires*`/ |
| `lldb.eCommandProcessMustBe*` etc.) controlling when this command is |
| available. |
| |
| Returns: |
| int: The flags bitmask. Defaults to 0 (no restrictions). |
| """ |
| return 0 |
| |
| def get_repeat_command(self, command: str) -> Optional[str]: |
| """Customize what runs when the user presses Enter to repeat this |
| command. |
| |
| Args: |
| command (str): The command line that was run. |
| |
| Returns: |
| str: The command line to run on repeat. Defaults to `None`, |
| meaning repeat the original command unmodified. |
| """ |
| pass |