X-Git-Url: https://scm.lunaixsky.com/lunaix-os.git/blobdiff_plain/7b8a1bcad75628f9add4590db2bb9b8e418ee8eb..c166bd62fbb907f95f79f621e2a2fb4fdde08e01:/lunaix-os/scripts/gdb/lunadbg/symbols.py?ds=sidebyside 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