This is mainly as an example for printers for other types.
--- /dev/null
+import gdb
+import gdb.printing
+import re
+
+class GeoPointPrinter:
+ def __init__(self, val):
+ self.val = val
+
+ def to_string(self):
+ return self.val['d_']['d_']['_M_elems']
+
+ def display_hint(self):
+ return 'array'
+
+def build_pretty_printer():
+ pp = gdb.printing.RegexpCollectionPrettyPrinter("fpp")
+ pp.add_printer('geo_point', '^base::geo_point<.*>$', GeoPointPrinter)
+ return pp
sys.path.insert(0, xdg_config + '/gdb')
from qt import register_qt_printers
register_qt_printers (None)
+
+import gdb.printing
+import fpp
+gdb.printing.register_pretty_printer(
+ gdb.current_objfile(),
+ fpp.build_pretty_printer())
+
end
set print pretty on