X-Git-Url: https://scm.lunaixsky.com/lunaix-os.git/blobdiff_plain/965940833071025bf0d386f4a9c70a5258453dbd..69777bdcab284335651a8002e2896f3862fa423d:/lunaix-os/scripts/gdb/lunadbg/commands.py diff --git a/lunaix-os/scripts/gdb/lunadbg/commands.py b/lunaix-os/scripts/gdb/lunadbg/commands.py index 9df5983..ec3fe82 100644 --- a/lunaix-os/scripts/gdb/lunadbg/commands.py +++ b/lunaix-os/scripts/gdb/lunadbg/commands.py @@ -1,6 +1,7 @@ from gdb import Command, COMMAND_USER import argparse +import shlex class LunadbgCommand(Command): def __init__(self, name: str) -> None: @@ -8,10 +9,21 @@ class LunadbgCommand(Command): self._parser = argparse.ArgumentParser() def _parse_args(self, gdb_argstr: str): - args, argv = self._parser.parse_known_args(gdb_argstr.strip().split(' '), None) - if argv: - print('unrecognized arguments: %s'%(' '.join(argv))) - print(self._parser.format_usage()) - print(self._parser.format_help()) - return None - return args \ No newline at end of file + try: + args, argv = self._parser.parse_known_args(shlex.split(gdb_argstr), None) + if argv: + print('unrecognized arguments: %s'%(' '.join(argv))) + else: + return args + except SystemExit: + pass + return None + + def invoke(self, argument: str, from_tty: bool) -> None: + parsed = self._parse_args(argument) + if not parsed: + return + self.on_execute(parsed, argument, from_tty) + + def on_execute(self, parsed, gdb_args, from_tty): + raise NotImplementedError() \ No newline at end of file