diff options
| author | Felix Morgner <felix.morgner@ost.ch> | 2026-05-07 12:09:27 +0200 |
|---|---|---|
| committer | Felix Morgner <felix.morgner@ost.ch> | 2026-05-07 12:09:27 +0200 |
| commit | 6ac1537d07dffa3482bbccf710a77a7316191c2e (patch) | |
| tree | 3f5d7158932344a29d790ae1705dc6b8607ce6b7 /kapi/gdb/address.py | |
| parent | 35829497bdc0e00aa8f32b1855079fa5e2e0b084 (diff) | |
| download | kernel-6ac1537d07dffa3482bbccf710a77a7316191c2e.tar.xz kernel-6ac1537d07dffa3482bbccf710a77a7316191c2e.zip | |
debug: use gdb.ValuePrinter base class
Diffstat (limited to 'kapi/gdb/address.py')
| -rw-r--r-- | kapi/gdb/address.py | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/kapi/gdb/address.py b/kapi/gdb/address.py index 24fe681..429db1d 100644 --- a/kapi/gdb/address.py +++ b/kapi/gdb/address.py @@ -1,15 +1,14 @@ import gdb -from teachos import TeachOSBasePrinter -class KapiMemoryAddressPrinter(TeachOSBasePrinter): +class KapiMemoryAddressPrinter(gdb.ValuePrinter): def __init__(self, val): - super().__init__(val) + self.__val = val self.__type = val.type.template_argument(0) def to_string(self): try: - raw_address = int(self.value["m_value"]) + raw_address = int(self.__val["m_value"]) type_string = str(self.__type) if "linear" in type_string: @@ -21,10 +20,12 @@ class KapiMemoryAddressPrinter(TeachOSBasePrinter): return f"{raw_address:#018x}{suffix}" except Exception as e: - return f"{self.value}: {e}" + return f"{self.__val}: {e}" def children(self): if "linear" in str(self.__type): pointer_type = gdb.lookup_type("std::byte").pointer() - yield ("[bytes]", self.value["m_value"].cast(pointer_type)) - yield from super().children() + yield ("[bytes]", self.__val["m_value"].cast(pointer_type)) + + def display_hint(self): + return None |
