1# Copyright (C) 2021-2023 Free Software Foundation, Inc. 2 3# This program is free software; you can redistribute it and/or modify 4# it under the terms of the GNU General Public License as published by 5# the Free Software Foundation; either version 3 of the License, or 6# (at your option) any later version. 7# 8# This program is distributed in the hope that it will be useful, 9# but WITHOUT ANY WARRANTY; without even the implied warranty of 10# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11# GNU General Public License for more details. 12# 13# You should have received a copy of the GNU General Public License 14# along with this program. If not, see <http://www.gnu.org/licenses/>. 15 16# This file is part of the GDB testsuite. It tests python pretty 17# printers. 18 19import re 20import gdb 21 22 23# Printer for Inner. 24class inner_print(object): 25 def __init__(self, val): 26 self.val = val 27 28 def to_string(self): 29 return "x(" + str(self.val["x"]) + ")" 30 31 32def lookup_function(val): 33 "Look-up and return a pretty-printer that can print val." 34 35 # Get the type. 36 type = val.type 37 38 # Get the type name. 39 typename = type.tag 40 41 if typename is None: 42 return None 43 44 if typename == "pp::Inner": 45 return inner_print(val) 46 return None 47 48 49gdb.pretty_printers.append(lookup_function) 50