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"