diff options
author | Yao Qi <yao@codesourcery.com> | 2014-09-29 21:37:32 +0800 |
---|---|---|
committer | Yao Qi <yao@codesourcery.com> | 2014-10-20 13:34:33 +0800 |
commit | 092f880b8e4cacee96e85a885c206e8879e86fec (patch) | |
tree | 5bf755354791bb5fea498e9c54080d2dd0f9c00b /gdb/testsuite/gdb.python/py-objfile-script-gdb.py | |
parent | acbdb7f355f9dfa851dcff3154944a0d96771b0e (diff) | |
download | binutils-092f880b8e4cacee96e85a885c206e8879e86fec.zip binutils-092f880b8e4cacee96e85a885c206e8879e86fec.tar.gz binutils-092f880b8e4cacee96e85a885c206e8879e86fec.tar.bz2 |
Rename py-objfile-script-gdb.py.in to py-objfile-script-gdb.py
Patch <https://sourceware.org/ml/gdb-patches/2011-07/msg00225.html> was
to fix the problem that py-objfile-script-gdb.py is removed after an
in-tree build and test. As a result of the previous patch (we don't
remove files copied to host any more), this patch is no longer needed.
This patch is to revert it logically.
gdb/testsuite:
2014-10-20 Yao Qi <yao@codesourcery.com>
* gdb.python/py-objfile-script-gdb.py.in: Rename it to ...
* gdb.python/py-objfile-script-gdb.py: New file.
* gdb.python/py-objfile-script.exp: Update reference to
py-objfile-script-gdb.py.in. Use gdb_remote_donwload instead
of remote_download. Remove the dest file.
Diffstat (limited to 'gdb/testsuite/gdb.python/py-objfile-script-gdb.py')
-rw-r--r-- | gdb/testsuite/gdb.python/py-objfile-script-gdb.py | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/gdb/testsuite/gdb.python/py-objfile-script-gdb.py b/gdb/testsuite/gdb.python/py-objfile-script-gdb.py new file mode 100644 index 0000000..5910bdb --- /dev/null +++ b/gdb/testsuite/gdb.python/py-objfile-script-gdb.py @@ -0,0 +1,63 @@ +# Copyright (C) 2011-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/>. + +# This file is part of the GDB testsuite. + +import re + +class pp_ss: + def __init__(self, val): + self.val = val + + def to_string(self): + return "a=<" + str(self.val["a"]) + "> b=<" + str(self.val["b"]) + ">" + +def lookup_function (val): + "Look-up and return a pretty-printer that can print val." + + # Get the type. + type = val.type + + # If it points to a reference, get the reference. + if type.code == gdb.TYPE_CODE_REF: + type = type.target () + + # Get the unqualified type, stripped of typedefs. + type = type.unqualified ().strip_typedefs () + + # Get the type name. + typename = type.tag + + if typename == None: + return None + + # Iterate over local dictionary of types to determine + # if a printer is registered for that type. Return an + # instantiation of the printer if found. + for function in pretty_printers_dict: + if function.match (typename): + return pretty_printers_dict[function] (val) + + # Cannot find a pretty printer. Return None. + + return None + +def register_pretty_printers (): + pretty_printers_dict[re.compile ('^ss$')] = pp_ss + +pretty_printers_dict = {} + +register_pretty_printers () +gdb.current_progspace().pretty_printers.append (lookup_function) |