summaryrefslogtreecommitdiff
path: root/share/gdb/python/gdb/command/type_printers.py
diff options
context:
space:
mode:
Diffstat (limited to 'share/gdb/python/gdb/command/type_printers.py')
-rw-r--r--share/gdb/python/gdb/command/type_printers.py125
1 files changed, 0 insertions, 125 deletions
diff --git a/share/gdb/python/gdb/command/type_printers.py b/share/gdb/python/gdb/command/type_printers.py
deleted file mode 100644
index 81f2ea1..0000000
--- a/share/gdb/python/gdb/command/type_printers.py
+++ /dev/null
@@ -1,125 +0,0 @@
-# Type printer commands.
-# Copyright (C) 2010-2013 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/>.
-
-import copy
-import gdb
-
-"""GDB commands for working with type-printers."""
-
-class InfoTypePrinter(gdb.Command):
- """GDB command to list all registered type-printers.
-
- Usage: info type-printers
- """
-
- def __init__ (self):
- super(InfoTypePrinter, self).__init__("info type-printers",
- gdb.COMMAND_DATA)
-
- def list_type_printers(self, type_printers):
- """Print a list of type printers."""
- # A potential enhancement is to provide an option to list printers in
- # "lookup order" (i.e. unsorted).
- sorted_type_printers = sorted (copy.copy(type_printers),
- key = lambda x: x.name)
- for printer in sorted_type_printers:
- if printer.enabled:
- enabled = ''
- else:
- enabled = " [disabled]"
- print (" %s%s" % (printer.name, enabled))
-
- def invoke(self, arg, from_tty):
- """GDB calls this to perform the command."""
- sep = ''
- for objfile in gdb.objfiles():
- if objfile.type_printers:
- print ("%sType printers for %s:" % (sep, objfile.name))
- self.list_type_printers(objfile.type_printers)
- sep = '\n'
- if gdb.current_progspace().type_printers:
- print ("%sType printers for program space:" % sep)
- self.list_type_printers(gdb.current_progspace().type_printers)
- sep = '\n'
- if gdb.type_printers:
- print ("%sGlobal type printers:" % sep)
- self.list_type_printers(gdb.type_printers)
-
-class _EnableOrDisableCommand(gdb.Command):
- def __init__(self, setting, name):
- super(_EnableOrDisableCommand, self).__init__(name, gdb.COMMAND_DATA)
- self.setting = setting
-
- def set_some(self, name, printers):
- result = False
- for p in printers:
- if name == p.name:
- p.enabled = self.setting
- result = True
- return result
-
- def invoke(self, arg, from_tty):
- """GDB calls this to perform the command."""
- for name in arg.split():
- ok = False
- for objfile in gdb.objfiles():
- if self.set_some(name, objfile.type_printers):
- ok = True
- if self.set_some(name, gdb.current_progspace().type_printers):
- ok = True
- if self.set_some(name, gdb.type_printers):
- ok = True
- if not ok:
- print ("No type printer named '%s'" % name)
-
- def add_some(self, result, word, printers):
- for p in printers:
- if p.name.startswith(word):
- result.append(p.name)
-
- def complete(self, text, word):
- result = []
- for objfile in gdb.objfiles():
- self.add_some(result, word, objfile.type_printers)
- self.add_some(result, word, gdb.current_progspace().type_printers)
- self.add_some(result, word, gdb.type_printers)
- return result
-
-class EnableTypePrinter(_EnableOrDisableCommand):
- """GDB command to enable the specified type printer.
-
- Usage: enable type-printer NAME
-
- NAME is the name of the type-printer.
- """
-
- def __init__(self):
- super(EnableTypePrinter, self).__init__(True, "enable type-printer")
-
-class DisableTypePrinter(_EnableOrDisableCommand):
- """GDB command to disable the specified type-printer.
-
- Usage: disable type-printer NAME
-
- NAME is the name of the type-printer.
- """
-
- def __init__(self):
- super(DisableTypePrinter, self).__init__(False, "disable type-printer")
-
-InfoTypePrinter()
-EnableTypePrinter()
-DisableTypePrinter()