diff options
Diffstat (limited to 'scripts/gdb/kstd/smart_pointers.py')
| -rw-r--r-- | scripts/gdb/kstd/smart_pointers.py | 50 |
1 files changed, 0 insertions, 50 deletions
diff --git a/scripts/gdb/kstd/smart_pointers.py b/scripts/gdb/kstd/smart_pointers.py deleted file mode 100644 index 6e4a4f9..0000000 --- a/scripts/gdb/kstd/smart_pointers.py +++ /dev/null @@ -1,50 +0,0 @@ -import gdb - - -class KstdUniquePtrPrinter: - - def __init__(self, val): - self.val = val - self.type = val.type.template_argument(0) - - def to_string(self): - 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.val["pointer"] - if int(pointer) != 0: - yield ("get()", pointer) - yield ("*get()", pointer.dereference()) - - -class KstdSharedPtrPrinter: - - def __init__(self, val): - self.val = val - self.type = val.type.template_argument(0) - - def to_string(self): - pointer = self.val["pointer"] - control_block = self.val["control"] - - if int(pointer) == 0 or int(control_block) == 0: - return f"kstd::shared_ptr<{self.type}> (empty)" - - strong_refs = int(control_block["shared_count"]["_M_i"]) - weak_refs = int(control_block["weak_count"]["_M_i"]) - - return f"kstd::shared_ptr<{self.type}> (use_count={strong_refs}, weak_count={weak_refs})" - - def children(self): - pointer = self.val["pointer"] - control_block = self.val["control"] - - if int(pointer) != 0: - yield ("get()", pointer) - yield ("*get()", pointer.dereference()) - - if int(control_block) != 0: - yield ("[control_block]", control_block.dereference()) |
