import gdb from teachos import format_size class KapiBootModulesBootModulePrinter(gdb.ValuePrinter): def __init__(self, val): self.__val = val self.__name = val["name"] self.__start = val["start_address"] self.__size = val["size"] self.__pointer_type = gdb.lookup_type("std::byte").pointer() self.__pretty_name = " " + str(self.__name) if str(self.__name) != '""' else "" def to_string(self): return f"boot module{self.__pretty_name} of size {format_size(int(self.__size))}, at {self.__start.cast(self.__pointer_type)}" def children(self): yield ("name", self.__name) yield ("start_address", self.__start) yield ("size", self.__size) def display_hint(self): return None