Special case NULL when using printf's %s format
authorTom Tromey <tom@tromey.com>
Thu, 15 Feb 2018 03:11:16 +0000 (20:11 -0700)
committerTom Tromey <tom@tromey.com>
Wed, 14 Mar 2018 15:44:34 +0000 (09:44 -0600)
commit3ae9ce5dd7d1119ca2c94c63a07b04921048ebe3
tree9f4dd07f3fb68d454f5718f1c1816996a0a4441e
parentb8c2339b2f46d4885b933b832fc5b37c7ca101a6
Special case NULL when using printf's %s format

This changes the printf command's %s and %ls formats to special-case
NULL, and print "(null)" for these.  This is PR cli/14977.  This
behavior seems a bit friendlier; I was undecided on whether other
invalid pointers should be handled specially somehow, so for the time
being I've left those out.

gdb/ChangeLog
2018-03-14  Tom Tromey  <tom@tromey.com>

PR cli/14977:
* printcmd.c (printf_c_string, printf_wide_c_string): Special case
for NULL.

gdb/gdbserver/ChangeLog
2018-03-14  Tom Tromey  <tom@tromey.com>

PR cli/14977:
* ax.c (ax_printf): Special case for NULL.

gdb/testsuite/ChangeLog
2018-03-14  Tom Tromey  <tom@tromey.com>

PR cli/14977:
* gdb.base/printcmds.exp (test_printf): Add printf test of %s with
a null pointer.
* gdb.base/wchar.exp: Likewise.
gdb/ChangeLog
gdb/gdbserver/ChangeLog
gdb/gdbserver/ax.c
gdb/printcmd.c
gdb/testsuite/ChangeLog
gdb/testsuite/gdb.base/printcmds.exp
gdb/testsuite/gdb.base/wchar.exp