aboutsummaryrefslogtreecommitdiff
path: root/gdb/python
diff options
context:
space:
mode:
authorJoel Brobecker <brobecker@adacore.com>2014-01-30 07:37:08 +0400
committerJoel Brobecker <brobecker@adacore.com>2014-02-26 11:04:12 -0800
commit1b588015839caafc608a6944a78aea170f5fb2f6 (patch)
treec70dbe69d571d253d677f29aa732c69b7a298466 /gdb/python
parentdbb9c2b1f231262ece36790241fe1fc3902cf03d (diff)
downloadgdb-1b588015839caafc608a6944a78aea170f5fb2f6.zip
gdb-1b588015839caafc608a6944a78aea170f5fb2f6.tar.gz
gdb-1b588015839caafc608a6944a78aea170f5fb2f6.tar.bz2
[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.
Diffstat (limited to 'gdb/python')
-rw-r--r--gdb/python/lib/gdb/printing.py2
1 files changed, 2 insertions, 0 deletions
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