lsst.ip.diffim  14.0-6-gf4bc96c+10
printers.py
Go to the documentation of this file.
1 from __future__ import absolute_import, division, print_function
2 
3 import gdb
4 import sys
5 
6 from builtins import object
7 
8 try:
9  import gdb.printing
10 
11  # example from meas_alg
12  class CRPixelPrinter(object):
13  "Print a CRPixel"
14 
15  def __init__(self, val):
16  self.val = val
17 
18  def to_string(self):
19  return "{id=%d (%d, %d)}" % (self.val["id"], self.val["col"], self.val["row"])
20 
21  printers = []
22 
23  def register(obj):
24  "Register my pretty-printers with objfile Obj."
25 
26  if obj is None:
27  obj = gdb
28 
29  for p in printers:
30  gdb.printing.register_pretty_printer(obj, p)
31 
33  printer = gdb.printing.RegexpCollectionPrettyPrinter("ip_diffim")
34 
35  # example from meas_alg
36  # printer.add_printer('lsst::meas::algorithms::CRPixel',
37  # '^lsst::meas::algorithms::CRPixel', CRPixelPrinter)
38 
39  return printer
40 
41  printers.append(build_ip_diffim_dictionary())
42 
43 except ImportError:
44  def register(*args, **kwargs):
45  print("Your version of gdb is too old to load the ip.diffim python pretty printers", file=sys.stderr)
46  pass
47 
48  pass