I am looking for a solid tutorial on creating a custom printer.
There are a few sparse pages on the GDB page however they are far from complete and leave much to the imagination!
For instance, I’d love to be able to create a PrettyPrinter for our custom shared pointer class.
Check out Tom Tromey’s pretty printing tutorials part 1 and part 2. There is also the libstdc++-v6 pretty printer implementation to look at, which is what I used myself as a template when I started out. A somewhat simpler example (as of this writing) is the Boost pretty printer by Rüdiger Sonderfeld.