From 1b588015839caafc608a6944a78aea170f5fb2f6 Mon Sep 17 00:00:00 2001 From: Joel Brobecker Date: Thu, 30 Jan 2014 07:37:08 +0400 Subject: [Python] Make regexp collection printers work with typedefs as well. Consider the following type for which we would like to provide a pretty-printer and manage it via RegexpCollectionPrettyPrinter: typedef long time_t; Currently, this does not work because this framework only considers the type's tag name: typename = gdb.types.get_basic_type(val.type).tag if not typename: return None This patch extends it to use the type's name if the basic type does not have a tag name, thus allowing the framework to also work with typedefs like the above. gdb/ChangeLog: * python/lib/gdb/printing.py (RegexpCollectionPrettyPrinter): Use the type's name if its basic type does not have a tag. gdb/testsuite/ChangeLog: * testsuite/gdb.python/py-pp-re-notag.c: New file. * testsuite/gdb.python/py-pp-re-notag.ex: New file. * testsuite/gdb.python/py-pp-re-notag.p: New file. --- gdb/python/lib/gdb/printing.py | 2 ++ 1 file changed, 2 insertions(+) (limited to 'gdb/python') diff --git a/gdb/python/lib/gdb/printing.py b/gdb/python/lib/gdb/printing.py index 80227c8..2940b93 100644 --- a/gdb/python/lib/gdb/printing.py +++ b/gdb/python/lib/gdb/printing.py @@ -200,6 +200,8 @@ class RegexpCollectionPrettyPrinter(PrettyPrinter): # Get the type name. typename = gdb.types.get_basic_type(val.type).tag if not typename: + typename = val.type.name + if not typename: return None # Iterate over table of type regexps to determine -- cgit v1.1