diff options
-rw-r--r-- | gdb/ChangeLog | 4 | ||||
-rw-r--r-- | gdb/python/py-type.c | 9 | ||||
-rw-r--r-- | gdb/testsuite/ChangeLog | 4 | ||||
-rw-r--r-- | gdb/testsuite/gdb.ada/py_range.exp | 5 |
4 files changed, 22 insertions, 0 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 9d56f1c..c973f43 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,9 @@ 2021-06-25 Tom Tromey <tromey@adacore.com> + * python/py-type.c (typy_get_name): Decode an Ada type name. + +2021-06-25 Tom Tromey <tromey@adacore.com> + * ada-lang.c (ada_decode): Add wrap parameter. * ada-lang.h (ada_decode): Add wrap parameter. diff --git a/gdb/python/py-type.c b/gdb/python/py-type.c index 4f5f425..04d1c7a 100644 --- a/gdb/python/py-type.c +++ b/gdb/python/py-type.c @@ -27,6 +27,7 @@ #include "objfiles.h" #include "language.h" #include "typeprint.h" +#include "ada-lang.h" struct type_object { @@ -393,6 +394,14 @@ typy_get_name (PyObject *self, void *closure) if (type->name () == NULL) Py_RETURN_NONE; + /* Ada type names are encoded, but it is better for users to see the + decoded form. */ + if (ADA_TYPE_P (type)) + { + std::string name = ada_decode (type->name (), false); + if (!name.empty ()) + return PyString_FromString (name.c_str ()); + } return PyString_FromString (type->name ()); } diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index d12aba9..e5164c7 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2021-06-25 Tom Tromey <tromey@adacore.com> + + * gdb.ada/py_range.exp: Add type name test cases. + 2021-06-24 Tom de Vries <tdevries@suse.de> * gdb.base/info-macros.exp: Add <EOL> after trailing whitespace in diff --git a/gdb/testsuite/gdb.ada/py_range.exp b/gdb/testsuite/gdb.ada/py_range.exp index 1a619b7..3e6efa3 100644 --- a/gdb/testsuite/gdb.ada/py_range.exp +++ b/gdb/testsuite/gdb.ada/py_range.exp @@ -40,3 +40,8 @@ gdb_test "python print(int(gdb.parse_and_eval('si')))" \ gdb_test "python print(int(gdb.parse_and_eval('ir')))" \ "974" + +gdb_test "python print(gdb.parse_and_eval('si').type)" \ + "foo\\.small_integer" "print type" +gdb_test "python print(gdb.parse_and_eval('si').type.name)" \ + "foo\\.small_integer" "print type name" |