aboutsummaryrefslogtreecommitdiff
path: root/libs/kstd/gdb/vector.py
diff options
context:
space:
mode:
Diffstat (limited to 'libs/kstd/gdb/vector.py')
-rw-r--r--libs/kstd/gdb/vector.py19
1 files changed, 10 insertions, 9 deletions
diff --git a/libs/kstd/gdb/vector.py b/libs/kstd/gdb/vector.py
index 597ffdc..4340ef4 100644
--- a/libs/kstd/gdb/vector.py
+++ b/libs/kstd/gdb/vector.py
@@ -1,20 +1,21 @@
import gdb
+from teachos import TeachOSBasePrinter
-class KstdVectorPrinter:
-
+class KstdVectorPrinter(TeachOSBasePrinter):
def __init__(self, val):
- self.val = val
- self.type = val.type.template_argument(0)
+ super().__init__(val)
+ self.__type = val.type.template_argument(0)
def to_string(self):
- size = int(self.val["m_size"])
- capacity = int(self.val["m_capacity"])
- return f"kstd::vector of length {size}, capacity {capacity}"
+ size = int(self.value["m_size"])
+ capacity = int(self.value["m_capacity"])
+ return f"kstd::vector<{self.__type}> (size={size}, capacity={capacity})"
def children(self):
- size = int(self.val["m_size"])
- data_pointer = self.val["m_data"]
+ yield from super().children()
+ size = int(self.value["m_size"])
+ data_pointer = self.value["m_data"]
for i in range(size):
yield (f"[{i}]", (data_pointer + i).dereference())