PR python/17364
gdb/ChangeLog: * python/lib/gdb/__init__.py (packages): Add "printer". * python/lib/gdb/command/bound_registers.py: Moved to ... * python/lib/gdb/printer/bound_registers.py: ... here. Add printer to global set of builtin printers. Rename printer from "bound" to "mpx_bound128". * python/lib/gdb/printing.py (_builtin_pretty_printers): New global, registered as global "builtin" printer. (add_builtin_pretty_printer): New function. * data-directory/Makefile.in (PYTHON_FILE_LIST): Update, and add gdb/printer/__init__.py.
This commit is contained in:
parent
35a49624e2
commit
6979730b1b
6 changed files with 54 additions and 18 deletions
|
@ -81,7 +81,8 @@ PYTHONDIR = os.path.dirname(os.path.dirname(__file__))
|
|||
|
||||
packages = [
|
||||
'function',
|
||||
'command'
|
||||
'command',
|
||||
'printer'
|
||||
]
|
||||
|
||||
# pkgutil.iter_modules is not available prior to Python 2.6. Instead,
|
||||
|
|
14
gdb/python/lib/gdb/printer/__init__.py
Normal file
14
gdb/python/lib/gdb/printer/__init__.py
Normal file
|
@ -0,0 +1,14 @@
|
|||
# Copyright (C) 2014 Free Software Foundation, Inc.
|
||||
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
@ -1,4 +1,4 @@
|
|||
# Pretty-printer utilities.
|
||||
# Pretty-printers for bounds registers.
|
||||
# Copyright (C) 2013-2014 Free Software Foundation, Inc.
|
||||
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
|
@ -16,8 +16,8 @@
|
|||
|
||||
import gdb.printing
|
||||
|
||||
class BoundPrinter:
|
||||
"""Adds size field to a _rawbound128 type."""
|
||||
class MpxBound128Printer:
|
||||
"""Adds size field to a mpx __gdb_builtin_type_bound128 type."""
|
||||
|
||||
def __init__ (self, val):
|
||||
self.val = val
|
||||
|
@ -31,15 +31,6 @@ class BoundPrinter:
|
|||
result = '{lbound = %s, ubound = %s} : size %s' % (lower, upper, size)
|
||||
return result
|
||||
|
||||
# There are two pattern matching used: first one is related to a library
|
||||
# second is related to the type. Since we are displaying a register all
|
||||
# libraries are accepted. Type to be processed is the same present
|
||||
# in the xml file.
|
||||
|
||||
def build_pretty_printer ():
|
||||
pp = gdb.printing.RegexpCollectionPrettyPrinter (".*")
|
||||
pp.add_printer ('bound', '^__gdb_builtin_type_bound128', BoundPrinter)
|
||||
return pp
|
||||
|
||||
gdb.printing.register_pretty_printer (gdb.current_objfile (),
|
||||
build_pretty_printer ())
|
||||
gdb.printing.add_builtin_pretty_printer ('mpx_bound128',
|
||||
'^__gdb_builtin_type_bound128',
|
||||
MpxBound128Printer)
|
|
@ -263,3 +263,17 @@ class FlagEnumerationPrinter(PrettyPrinter):
|
|||
return _EnumInstance(self.enumerators, val)
|
||||
else:
|
||||
return None
|
||||
|
||||
|
||||
# Builtin pretty-printers.
|
||||
# The set is defined as empty, and files in printing/*.py add their printers
|
||||
# to this with add_builtin_pretty_printer.
|
||||
|
||||
_builtin_pretty_printers = RegexpCollectionPrettyPrinter("builtin")
|
||||
|
||||
register_pretty_printer(None, _builtin_pretty_printers)
|
||||
|
||||
# Add a builtin pretty-printer.
|
||||
|
||||
def add_builtin_pretty_printer(name, regexp, printer):
|
||||
_builtin_pretty_printers.add_printer(name, regexp, printer)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue