diff options
| author | Felix Morgner <felix.morgner@ost.ch> | 2026-05-07 12:17:01 +0200 |
|---|---|---|
| committer | Felix Morgner <felix.morgner@ost.ch> | 2026-05-07 12:17:01 +0200 |
| commit | fb09cd6633b26ef2cfb4f21b8cd852611cfe59d8 (patch) | |
| tree | 3cee60d6bc9db2b0ff3319f7c56a19fa944659a8 /libs/kstd/gdb/smart_pointers.py | |
| parent | 6ac1537d07dffa3482bbccf710a77a7316191c2e (diff) | |
| download | kernel-fb09cd6633b26ef2cfb4f21b8cd852611cfe59d8.tar.xz kernel-fb09cd6633b26ef2cfb4f21b8cd852611cfe59d8.zip | |
debug: add support for kstd::observer_ptr
Diffstat (limited to 'libs/kstd/gdb/smart_pointers.py')
| -rw-r--r-- | libs/kstd/gdb/smart_pointers.py | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/libs/kstd/gdb/smart_pointers.py b/libs/kstd/gdb/smart_pointers.py index b94d466..f6e8a45 100644 --- a/libs/kstd/gdb/smart_pointers.py +++ b/libs/kstd/gdb/smart_pointers.py @@ -49,3 +49,20 @@ class KstdSharedPtrPrinter(gdb.ValuePrinter): def display_hint(self): return None + + +class KstdObserverPtrPrinter(gdb.ValuePrinter): + def __init__(self, val): + self.__val = val + self.__type = val.type.template_argument(0) + self.__pointer = val["m_ptr"] + + def to_string(self): + return f"{(self.__pointer)}" + + def children(self): + if int(self.__pointer) != 0: + yield ("get()", self.__pointer.dereference()) + + def display_hint(self): + return None |
