Ensure GDB printf command can print convenience var strings without a target.
authorPhilippe Waroquiers <philippe.waroquiers@skynet.be>
Mon, 10 Jun 2019 19:41:51 +0000 (21:41 +0200)
committerPhilippe Waroquiers <philippe.waroquiers@skynet.be>
Mon, 8 Jul 2019 21:31:54 +0000 (23:31 +0200)
commit1f6f6e21fa86dc3411a6498608f32e9eb24b7851
tree37520dd0294952b805f1358230555b20e89bd4a9
parentea142fbfc9c1708a83d3532257d6728e1f5c142e
Ensure GDB printf command can print convenience var strings without a target.

Without this patch, GDB printf command calls malloc on the target,
writes the convenience var content to the target,
re-reads the content from the target, and then locally printf the string.

This implies inferior calls, and does not work when there is no running
inferior, or when the inferior is a core dump.

With this patch, printf command can printf string convenience variables
without inferior function calls.
Ada string convenience variables can also be printed.

gdb/ChangeLog
2019-07-08  Philippe Waroquiers  <philippe.waroquiers@skynet.be>

* NEWS: Mention that GDB printf and eval commands can now print
C-style and Ada-style convenience var strings without
calling the inferior.
* printcmd.c (printf_c_string): Locally print GDB internal var
instead of transiting via the inferior.
(printf_wide_c_string): Likewise.

gdb/testsuite/ChangeLog
2019-07-08  Philippe Waroquiers  <philippe.waroquiers@skynet.be>

* gdb.base/printcmds.exp: Test printing C string and
C wide string convenience vars without transiting via the inferior.
Also make test names unique.
gdb/ChangeLog
gdb/NEWS
gdb/printcmd.c
gdb/testsuite/ChangeLog
gdb/testsuite/gdb.base/printcmds.exp