import gdb from teachos import TeachOSBasePrinter class KstdVectorPrinter(TeachOSBasePrinter): def __init__(self, val): super().__init__(val) self.__type = val.type.template_argument(0) def to_string(self): 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): 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()) def display_hint(self): return "array"