From a93a85a1ff3ca937dabb1d985381b27836ce1bfc Mon Sep 17 00:00:00 2001 From: Ken Brown Date: Thu, 20 Aug 2020 09:47:47 -0400 Subject: Cygwin: strace: ignore GCC exceptions Any C++ app that calls 'throw' on 64-bit Cygwin results in an exception of type STATUS_GCC_THROW (0x20474343) generated by the C++ runtime. Don't pollute the strace output by printing information about this and other GCC exceptions. --- winsup/utils/strace.cc | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/winsup/utils/strace.cc b/winsup/utils/strace.cc index 9b6569a70..b96ad40c1 100644 --- a/winsup/utils/strace.cc +++ b/winsup/utils/strace.cc @@ -25,6 +25,7 @@ details. */ #include "../cygwin/include/sys/cygwin.h" #include "../cygwin/include/cygwin/version.h" #include "../cygwin/cygtls_padsize.h" +#include "../cygwin/gcc_seh.h" #include "path.h" #undef cygwin_internal #include "loadlib.h" @@ -790,6 +791,13 @@ proc_child (unsigned mask, FILE *ofile, pid_t pid) case STATUS_BREAKPOINT: case 0x406d1388: /* SetThreadName exception. */ break; +#ifdef __x86_64__ + case STATUS_GCC_THROW: + case STATUS_GCC_UNWIND: + case STATUS_GCC_FORCED: + status = DBG_EXCEPTION_NOT_HANDLED; + break; +#endif default: status = DBG_EXCEPTION_NOT_HANDLED; if (ev.u.Exception.dwFirstChance) -- cgit v1.2.3