gdb: Support printf 'z' size modifier
authorAndrew Burgess <andrew.burgess@embecosm.com>
Tue, 5 Nov 2019 14:24:17 +0000 (14:24 +0000)
committerAndrew Burgess <andrew.burgess@embecosm.com>
Tue, 12 Nov 2019 23:46:41 +0000 (23:46 +0000)
commite06f3d6eba37df8451ecc2ce2ac76cba811e8b35
treeb934c6e13719f986aab4714769dd9b56e3e1e075
parent468c0cbb327fadf28386a989f929fcbed4aed8b9
gdb: Support printf 'z' size modifier

The gdb format mechanism doesn't currently support the 'z' size
modifier, there are a few places in GDB where this is used.  Instead
of removing these uses lets just add support to GDB for using 'z'.

I found this issue when trying to use some of the debug output.
Before this commit:

  (gdb) set debug dwarf-line 9
  (gdb) file test
  Reading symbols from test...
  Unrecognized format specifier 'z' in printf
  (No debugging symbols found in test)
  (gdb)

After this commit:

  (gdb) set debug dwarf-line 9
  (gdb) file test
  Reading symbols from test...
  Adding dir 1: /usr/include
  Adding file 1: test.c
  Adding file 2: stdc-predef.h
  Processing actual line 3: file 1, address 0x4004a0, is_stmt 1, discrim 0
  Processing actual line 4: file 1, address 0x4004a0, is_stmt 1, discrim 0
  .... lots of debug output ...
  Processing actual line 10: file 1, address 0x4003b7, is_stmt 0, discrim 0
  (gdb)

I've added a self test to cover the integer format size modifiers,
including the 'z' modifier.

gdb/ChangeLog:

* gdbsupport/format.c (format_pieces::format_pieces): Support
printf 'z' size modifier.
* gdbsupport/format.h (enum argclass): Add size_t_arg.
* printcmd.c (ui_printf):  Handle size_t_arg.
* ui-out.c (ui_out::vmessage): Likewise.
* unittests/format_pieces-selftests.c (test_format_int_sizes): New
function.
(run_tests): Call test_format_int_sizes.

gdb/gdbserver/ChangeLog:

* ax.c (ax_printf): Handle size_t_arg.

Change-Id: Ib6c44d88aa5bce265d757e4c0698881803dd186f
gdb/ChangeLog
gdb/gdbserver/ChangeLog
gdb/gdbserver/ax.c
gdb/gdbsupport/format.c
gdb/gdbsupport/format.h
gdb/printcmd.c
gdb/ui-out.c
gdb/unittests/format_pieces-selftests.c
This page took 0.026235 seconds and 4 git commands to generate.