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.py22
1 files changed, 22 insertions, 0 deletions
diff --git a/libs/kstd/gdb/vector.py b/libs/kstd/gdb/vector.py
new file mode 100644
index 0000000..597ffdc
--- /dev/null
+++ b/libs/kstd/gdb/vector.py
@@ -0,0 +1,22 @@
+import gdb
+
+
+class KstdVectorPrinter:
+
+ def __init__(self, val):
+ self.val = 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}"
+
+ def children(self):
+ size = int(self.val["m_size"])
+ data_pointer = self.val["m_data"]
+ for i in range(size):
+ yield (f"[{i}]", (data_pointer + i).dereference())
+
+ def display_hint(self):
+ return "array"