X-Git-Url: https://scm.lunaixsky.com/lunaix-os.git/blobdiff_plain/64e5fa9a495e388c922157b9a616204c299f5e05..7b8a1bcad75628f9add4590db2bb9b8e418ee8eb:/lunaix-os/scripts/gdb/lunadbg/symbols.py?ds=inline diff --git a/lunaix-os/scripts/gdb/lunadbg/symbols.py b/lunaix-os/scripts/gdb/lunadbg/symbols.py new file mode 100644 index 0000000..a996501 --- /dev/null +++ b/lunaix-os/scripts/gdb/lunadbg/symbols.py @@ -0,0 +1,21 @@ +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