From: Samir Benmendil Date: Fri, 11 Mar 2022 08:10:50 +0000 (+0000) Subject: gdb: add printer for geo_point type X-Git-Url: https://git.rmz.io/dotfiles.git/commitdiff_plain/0da9fae3161bb4c463b975906bd9267db2c2ba9c?ds=sidebyside gdb: add printer for geo_point type This is mainly as an example for printers for other types. --- diff --git a/gdb/fpp.py b/gdb/fpp.py new file mode 100644 index 0000000..0c72822 --- /dev/null +++ b/gdb/fpp.py @@ -0,0 +1,18 @@ +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 diff --git a/gdbinit b/gdbinit index 58b2412..1792832 100644 --- a/gdbinit +++ b/gdbinit @@ -11,6 +11,13 @@ import sys 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