--- /dev/null
+import gdb
+from enum import StrEnum
+
+class SymbolDomain(StrEnum):
+ DEBUG = "debug"
+
+class LunaixSymbols:
+ class SymbolAccesser:
+ def __init__(self, sym) -> None:
+ self.sym = f"({sym})"
+
+ def deref_and_access(self, members):
+ return gdb.parse_and_eval(f"{self.sym}->{members}")
+
+ def access(self, members):
+ return gdb.parse_and_eval(f"{self.sym}.{members}")
+
+ @staticmethod
+ def exported(domain, sym_name):
+ name = f"*__SYMEXPORT_Z{domain.value}_{sym_name}"
+ return LunaixSymbols.SymbolAccesser(name)
\ No newline at end of file