gdb: Make python display_hint None handling defined behaviour
authorAndrew Burgess <andrew.burgess@embecosm.com>
Thu, 21 Mar 2019 16:29:14 +0000 (16:29 +0000)
committerAndrew Burgess <andrew.burgess@embecosm.com>
Tue, 26 Mar 2019 18:25:10 +0000 (18:25 +0000)
commit9f9aa85206ab31d2c583e7fef568700d31eb577e
tree2a45f4e501f37c94af2520e9227287f80f3de7c4
parent3714a195e08a5cc7713b27def7a3c3b534da53e8
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.
gdb/doc/ChangeLog
gdb/doc/python.texi
gdb/testsuite/ChangeLog
gdb/testsuite/gdb.python/py-prettyprint.c
gdb/testsuite/gdb.python/py-prettyprint.exp
gdb/testsuite/gdb.python/py-prettyprint.py