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 /libs/kstd/gdb/smart_pointers.py | |
| parent | 35829497bdc0e00aa8f32b1855079fa5e2e0b084 (diff) | |
| download | kernel-6ac1537d07dffa3482bbccf710a77a7316191c2e.tar.xz kernel-6ac1537d07dffa3482bbccf710a77a7316191c2e.zip | |
debug: use gdb.ValuePrinter base class
Diffstat (limited to 'libs/kstd/gdb/smart_pointers.py')
| -rw-r--r-- | libs/kstd/gdb/smart_pointers.py | 27 |
1 files changed, 14 insertions, 13 deletions
diff --git a/libs/kstd/gdb/smart_pointers.py b/libs/kstd/gdb/smart_pointers.py index 0c14c77..b94d466 100644 --- a/libs/kstd/gdb/smart_pointers.py +++ b/libs/kstd/gdb/smart_pointers.py @@ -1,34 +1,34 @@ import gdb -from teachos import TeachOSBasePrinter -class KstdUniquePtrPrinter(TeachOSBasePrinter): +class KstdUniquePtrPrinter(gdb.ValuePrinter): def __init__(self, val): - super().__init__(val) + self.__val = val self.__type = val.type.template_argument(0) def to_string(self): - pointer = self.value["pointer"] + pointer = self.__val["pointer"] if int(pointer) == 0: return f"kstd::unique_ptr<{self.__type}> (empty)" return f"kstd::unique_ptr<{self.__type}>" def children(self): - pointer = self.value["pointer"] + pointer = self.__val["pointer"] if int(pointer) != 0: yield ("get()", pointer.dereference()) - yield from super().children() + def display_hint(self): + return None -class KstdSharedPtrPrinter(TeachOSBasePrinter): +class KstdSharedPtrPrinter(gdb.ValuePrinter): def __init__(self, val): - super().__init__(val) + self.__val = val self.__type = val.type.template_argument(0) def to_string(self): - pointer = self.value["pointer"] - control_block = self.value["control"] + pointer = self.__val["pointer"] + control_block = self.__val["control"] if int(pointer) == 0 or int(control_block) == 0: return f"shared_ptr<{self.__type}> (empty)" @@ -41,10 +41,11 @@ class KstdSharedPtrPrinter(TeachOSBasePrinter): ) def children(self): - pointer = self.value["pointer"] - control_block = self.value["control"] + pointer = self.__val["pointer"] + control_block = self.__val["control"] if int(pointer) != 0: yield ("get()", pointer.dereference()) - yield from super().children() + def display_hint(self): + return None |
