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.
This commit is contained in:
Ken Brown 2020-08-20 09:47:47 -04:00
parent 14c0a4c67d
commit a93a85a1ff
1 changed files with 8 additions and 0 deletions

View File

@ -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)