import gdb class KstdStringPrinter(gdb.ValuePrinter): def __init__(self, val): self.__val = val def to_string(self): storage = self.__val["m_storage"] storage_size = int(storage["m_size"]) if storage_size <= 0: return '""' data_pointer = storage["m_data"] string_length = storage_size - 1 try: if hasattr(data_pointer, "lazy_string"): return data_pointer.lazy_string(encoding="utf-8", length=string_length) return data_pointer.string(encoding="utf-8", length=string_length) except gdb.error: return "" def display_hint(self): return "string"