add vm probing for x86_64
[lunaix-os.git] / lunaix-os / scripts / gdb / lunadbg / commands.py
1 from gdb import Command, COMMAND_USER
2
3 import argparse
4 import shlex
5 import traceback
6
7 class LunadbgCommand(Command):
8     def __init__(self, name: str) -> None:
9         super().__init__(name, COMMAND_USER)
10         self._parser = argparse.ArgumentParser()
11
12     def _parse_args(self, gdb_argstr: str):
13         try:
14             args, argv = self._parser.parse_known_args(shlex.split(gdb_argstr), None)
15             if argv:
16                 print('unrecognized arguments: %s'%(' '.join(argv)))
17             else:
18                 return args
19         except SystemExit:
20             pass 
21         return None
22     
23     def invoke(self, argument: str, from_tty: bool) -> None:
24         try:
25             parsed = self._parse_args(argument)
26             if not parsed:
27                 return
28             self.on_execute(parsed, argument, from_tty)
29         except Exception as e:
30             traceback.print_exception(e)
31
32
33     def on_execute(self, parsed, gdb_args, from_tty):
34         raise NotImplementedError()