Add new Python APIs to support DAP value display
authorTom Tromey <tromey@adacore.com>
Mon, 24 Jul 2023 13:29:46 +0000 (07:29 -0600)
committerTom Tromey <tromey@adacore.com>
Tue, 5 Sep 2023 17:10:15 +0000 (11:10 -0600)
commit59668c9d8c2fd10a521b06f2183b054498421d66
treed1094cf5340025357039d6f6ecfbdaffcd8ce996
parent91c7233d2da89a6bd4e784031af08c61cb1a5cff
Add new Python APIs to support DAP value display

gdb's language code may know how to display values specially.  For
example, the Rust code understands that &str is a string-like type, or
Ada knows how to handle unconstrained arrays.  This knowledge is
exposed via val-print, and via varobj -- but currently not via DAP.

This patch adds some support code to let DAP also handle these cases,
though in a somewhat more generic way.

Type.is_array_like and Value.to_array are added to make Python aware
of the cases where gdb knows that a structure type is really
"array-like".

Type.is_string_like is added to make Python aware of cases where gdb's
language code knows that a type is string-like.

Unlike Value.string, these cases are handled by the type's language,
rather than the current language.

Reviewed-By: Eli Zaretskii <eliz@gnu.org>
gdb/NEWS
gdb/doc/python.texi
gdb/python/py-type.c
gdb/python/py-value.c