X-Git-Url: https://scm.lunaixsky.com/lunaix-os.git/blobdiff_plain/92f6e64a6da763c45ff9f4ab5eafcab3d8766dcb..b60166b327a9108b07e3069fa6568a451529ffd9:/lunaix-os/scripts/gdb/lunadbg/symbols.py diff --git a/lunaix-os/scripts/gdb/lunadbg/symbols.py b/lunaix-os/scripts/gdb/lunadbg/symbols.py index a996501..be4407b 100644 --- a/lunaix-os/scripts/gdb/lunadbg/symbols.py +++ b/lunaix-os/scripts/gdb/lunadbg/symbols.py @@ -8,14 +8,26 @@ class LunaixSymbols: class SymbolAccesser: def __init__(self, sym) -> None: self.sym = f"({sym})" + self.__sym = gdb.parse_and_eval(self.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}") + + def __getitem__(self, index): + return self.__sym[index] + + def value(self): + return self.__sym @staticmethod - def exported(domain, sym_name): - name = f"*__SYMEXPORT_Z{domain.value}_{sym_name}" + def exported(domain, namespace, sym_name): + name = f"*__SYMEXPORT_Z{domain.value}_N{namespace}_S{sym_name}" + return LunaixSymbols.SymbolAccesser(name) + + @staticmethod + def debug_sym(namespace, sym_name): + name = f"*__SYMEXPORT_Z{SymbolDomain.DEBUG}_N{namespace}_S{sym_name}" return LunaixSymbols.SymbolAccesser(name) \ No newline at end of file