Allow pretty-printer 'children' method to return strings
authorTom Tromey <tromey@adacore.com>
Thu, 31 Aug 2023 19:01:00 +0000 (13:01 -0600)
committerTom Tromey <tromey@adacore.com>
Thu, 7 Sep 2023 20:04:53 +0000 (14:04 -0600)
commitaa15623fe68b3151ed54a7365b5a5226b538851a
tree692cd82047ca4bdcadbbac5ae9805e14ee46c3da
parentbe7d5d2c417a842452f5f5d4ed7fc8d058a970bf
Allow pretty-printer 'children' method to return strings

A user noticed that, while a pretty-printer can return Python strings
from its "children" method, this does not really work for MI.  I
tracked this down to my_value_of_variable calling into
c_value_of_variable, which specially handles arrays and structures --
not using the actual contents of the string.

Now, this part of MI seems bad to me, but rather than change that,
this applies the fix to only dynamic varobjs, which is the only
scenario where a string like this can really be returned.

Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=18282
Reviewed-by: Keith Seitz <keiths@redhat.com>
gdb/testsuite/gdb.python/py-varobj.c [new file with mode: 0644]
gdb/testsuite/gdb.python/py-varobj.exp [new file with mode: 0644]
gdb/testsuite/gdb.python/py-varobj.py [new file with mode: 0644]
gdb/varobj.c