From ba3adfb8cd8074759432f040b5d4967963035415 Mon Sep 17 00:00:00 2001 From: Jon Turney Date: Mon, 14 Sep 2020 14:23:54 +0100 Subject: [PATCH 02/10] Only ignore expected Cygwin OutputDebugStrings() Rather than ignoring all debug strings starting with 'cYg', just ignore the expected ones: - 'cYgSiGw00f' informs the debugger of a Cygwin signal in the debuggee - 'cYgstd' invites the debugger to alter stdin/out/err fds in the debuggee - 'cYgFFFFFFFFFF' invites the debugger to activate strace output from the debugee Any other debug string starting 'cYg' is unexpected, and reported verbatim. --- gdb/windows-nat.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/gdb/windows-nat.c b/gdb/windows-nat.c index f9172c3a7f8..32e97788942 100644 --- a/gdb/windows-nat.c +++ b/gdb/windows-nat.c @@ -997,7 +997,11 @@ windows_nat::handle_output_debug_string (struct target_waitstatus *ourstatus) else if (!startswith (s.get (), _CYGWIN_SIGNAL_STRING)) { #ifdef __CYGWIN__ - if (!startswith (s.get (), "cYg")) + /* Ignore calls to OutputDebugString() which start with 'cYg', which are + expected to be generated by Cygwin. Except some unclear special cases. + */ + if (!startswith (s.get (), "cYg") || (strncmp (s.get () + 3, "FFFFFFFF", 8) != 0 + && strncmp (s.get () + 3, "std", 3) != 0)) #endif { char *p = strchr (s.get (), '\0'); -- 2.28.0