aboutsummaryrefslogtreecommitdiff
path: root/gdb/testsuite/gdb.python/py-prettyprint.py
diff options
context:
space:
mode:
authorAndrew Burgess <andrew.burgess@embecosm.com>2019-03-21 16:29:14 +0000
committerAndrew Burgess <andrew.burgess@embecosm.com>2019-03-26 18:25:10 +0000
commit9f9aa85206ab31d2c583e7fef568700d31eb577e (patch)
tree2a45f4e501f37c94af2520e9227287f80f3de7c4 /gdb/testsuite/gdb.python/py-prettyprint.py
parent3714a195e08a5cc7713b27def7a3c3b534da53e8 (diff)
downloadbinutils-9f9aa85206ab31d2c583e7fef568700d31eb577e.zip
binutils-9f9aa85206ab31d2c583e7fef568700d31eb577e.tar.gz
binutils-9f9aa85206ab31d2c583e7fef568700d31eb577e.tar.bz2
gdb: Make python display_hint None handling defined behaviour
The documentation say that the display_hint method must return a string to serve as a display hint, and then goes on to list some acceptable strings. However, if we don't supply the display_hint method then we get a default display style behaviour and there's currently no way (in the python api) to force this default behaviour. The guile api allows #f to be used in order to force the default display style behaviour, and this is documented. Currently, using None in the python api also forces the default display behaviour. This commit extends the documentation to make returning None from the display_hint method an official mechanism by which the user can get the default display style. I've extended one of the existing tests to cover this case. gdb/doc/ChangeLog: * python.texi (Pretty Printing API): Document use of None for the display_hint. gdb/testsuite/ChangeLog: * gdb.python/py-prettyprint.c (struct container) <is_map_p>: New field. (make_container): Initialise new field. * gdb.python/py-prettyprint.exp: Add new tests. * gdb.python/py-prettyprint.py (class ContainerPrinter) <display_hint>: New method.
Diffstat (limited to 'gdb/testsuite/gdb.python/py-prettyprint.py')
-rw-r--r--gdb/testsuite/gdb.python/py-prettyprint.py6
1 files changed, 6 insertions, 0 deletions
diff --git a/gdb/testsuite/gdb.python/py-prettyprint.py b/gdb/testsuite/gdb.python/py-prettyprint.py
index 92fe815..43727f7 100644
--- a/gdb/testsuite/gdb.python/py-prettyprint.py
+++ b/gdb/testsuite/gdb.python/py-prettyprint.py
@@ -56,6 +56,12 @@ class ContainerPrinter (object):
def children(self):
return _iterator(self.val['elements'], self.val['len'])
+ def display_hint (self):
+ if (self.val['is_map_p']):
+ return 'map'
+ else:
+ return None
+
# Treats a container as array.
class ArrayPrinter (object):
def __init__(self, val):