binutils-gdb/gdb/gdbsupport
Tom Tromey 6ba1852136 Handle %I64d in format_pieces
We found a bug internally where gdb would crash while disassembling a
certain instruction.  This was tracked down to the handling of %I64d
in format_pieces.

format_pieces will convert %ll to %I64d on mingw -- so format_pieces
should also handle parsing this format.  In this patch, I've made the
parsing unconditional, since I think it is harmless to accept extra
formats.  I've also taken the opportunity to convert the length
modifier test to a "switch".

Tested internally using our failing test case.

gdb/ChangeLog
2019-11-21  Tom Tromey  <tromey@adacore.com>

	* gdbsupport/format.c (format_pieces): Parse %I64d.
	* unittests/format_pieces-selftests.c (test_windows_formats): New
	function.
	(run_tests): Call it.

Change-Id: If335c7c2fc8d01e629cd55182394a483334d79c7
2019-11-21 14:39:40 -07:00
..
agent.c Convert int to bool in agent.c 2019-10-31 13:28:14 -05:00
agent.h Convert int to bool in agent.c 2019-10-31 13:28:14 -05:00
array-view.h
ax.def
break-common.h
btrace-common.c gdb: Remove whitespace in 'std::vector <...>' 2019-10-03 09:42:42 +01:00
btrace-common.h gdb: Remove whitespace in 'std::vector <...>' 2019-10-03 09:42:42 +01:00
buffer.c
buffer.h
byte-vector.h
cleanups.c
cleanups.h
common-debug.c Change boolean options to bool instead of int 2019-09-18 09:35:12 +09:00
common-debug.h Change boolean options to bool instead of int 2019-09-18 09:35:12 +09:00
common-defs.h Import the time_r gnulib module 2019-11-15 11:48:08 -08:00
common-exceptions.c
common-exceptions.h
common-gdbthread.h
common-inferior.c Fix type of startup_with_shell in gdbserver 2019-10-02 13:43:41 -06:00
common-inferior.h Fix type of startup_with_shell in gdbserver 2019-10-02 13:43:41 -06:00
common-regcache.c
common-regcache.h
common-types.h
common-utils.c
common-utils.h Use strerror_r in safe_strerror if available 2019-10-31 15:14:14 -05:00
common.m4 Import the strerror_r-posix module and use it in GDB. 2019-11-15 11:12:24 -08:00
create-version.sh
def-vector.h
default-init-alloc.h
enum-flags.h
environ.c
environ.h
errors.c
errors.h
fileio.c
fileio.h
filestuff.c
filestuff.h
filtered-iterator.h
format.c Handle %I64d in format_pieces 2019-11-21 14:39:40 -07:00
format.h gdb: Support printf 'z' size modifier 2019-11-12 23:46:41 +00:00
forward-scope-exit.h
function-view.h
gdb_assert.h Add missing includes to gdb_assert.h and gdb_string_view.h 2019-10-02 13:33:09 -05:00
gdb_binary_search.h Replace bsearch with a std::lower_bound-based search 2019-10-29 14:06:26 -05:00
gdb_locale.h
gdb_optional.h
gdb_proc_service.h
gdb_ref_ptr.h
gdb_setjmp.h Allow not saving the signal state in SIGSETJMP 2019-10-16 16:13:43 -05:00
gdb_signals.h
gdb_splay_tree.h
gdb_string_view.h Add missing includes to gdb_assert.h and gdb_string_view.h 2019-10-02 13:33:09 -05:00
gdb_string_view.tcc
gdb_sys_time.h
gdb_tilde_expand.c
gdb_tilde_expand.h
gdb_unique_ptr.h
gdb_unlinker.h
gdb_vecs.c
gdb_vecs.h gdb_vecs.h: Avoid self move assign 2019-11-10 20:09:59 +00:00
gdb_wait.h
gdb-dlfcn.c Move gdb-dlfcn.[ch] to gdbsupport/ 2019-08-23 13:13:18 -04:00
gdb-dlfcn.h Revert "Improve ptrace-error detection on Linux targets" 2019-09-26 14:24:30 -04:00
hash_enum.h
host-defs.h
job-control.c
job-control.h
netstuff.c
netstuff.h
new-op.c
next-iterator.h
observable.h
offset-type.h
pathstuff.c
pathstuff.h
poison.h
preprocessor.h
print-utils.c
print-utils.h Improve comments in print-utils.h. 2019-10-11 11:28:35 -07:00
ptid.c
ptid.h
refcounted-object.h
rsp-low.c
rsp-low.h
run-time-clock.c
run-time-clock.h
safe-iterator.h
safe-strerror.c Use gnulib's strerror_r on MinGW 2019-11-15 13:31:36 -08:00
scope-exit.h
scoped_fd.h
scoped_mmap.c
scoped_mmap.h
scoped_restore.h
selftest.c
selftest.h
signals-state-save-restore.c
signals-state-save-restore.h
signals.c
symbol.h
tdesc.c
tdesc.h
traits.h
underlying.h
valid-expr.h
version.h
x86-xstate.h
xml-utils.c
xml-utils.h