import gdb.printing from .vector import KstdVectorPrinter from .string import KstdStringPrinter from .smart_pointers import KstdUniquePtrPrinter, KstdSharedPtrPrinter def build_pretty_printers(): pp = gdb.printing.RegexpCollectionPrettyPrinter("kstd") pp.add_printer("vector", "^kstd::vector<.*>$", KstdVectorPrinter) pp.add_printer("string", "^kstd::string$", KstdStringPrinter) pp.add_printer("unique_ptr", "^kstd::unique_ptr<.*>$", KstdUniquePtrPrinter) pp.add_printer("shared_ptr", "^kstd::shared_ptr<.*>$", KstdSharedPtrPrinter) return pp def register_printers(objfile): gdb.printing.register_pretty_printer(objfile, build_pretty_printers(), replace=True)