import gdb from teachos import TeachOSBasePrinter class KstdVectorPrinter(TeachOSBasePrinter): def to_string(self): size = int(self.value["m_size"]) capacity = int(self.value["m_capacity"]) return f"vector of length {size}, capacity {capacity}" def children(self): 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" def num_children(self): return int(self.value["m_size"])