mirror of
git://sourceware.org/git/newlib-cygwin.git
synced 2025-02-27 19:17:18 +08:00
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:
parent
14c0a4c67d
commit
a93a85a1ff
@ -25,6 +25,7 @@ details. */
|
|||||||
#include "../cygwin/include/sys/cygwin.h"
|
#include "../cygwin/include/sys/cygwin.h"
|
||||||
#include "../cygwin/include/cygwin/version.h"
|
#include "../cygwin/include/cygwin/version.h"
|
||||||
#include "../cygwin/cygtls_padsize.h"
|
#include "../cygwin/cygtls_padsize.h"
|
||||||
|
#include "../cygwin/gcc_seh.h"
|
||||||
#include "path.h"
|
#include "path.h"
|
||||||
#undef cygwin_internal
|
#undef cygwin_internal
|
||||||
#include "loadlib.h"
|
#include "loadlib.h"
|
||||||
@ -790,6 +791,13 @@ proc_child (unsigned mask, FILE *ofile, pid_t pid)
|
|||||||
case STATUS_BREAKPOINT:
|
case STATUS_BREAKPOINT:
|
||||||
case 0x406d1388: /* SetThreadName exception. */
|
case 0x406d1388: /* SetThreadName exception. */
|
||||||
break;
|
break;
|
||||||
|
#ifdef __x86_64__
|
||||||
|
case STATUS_GCC_THROW:
|
||||||
|
case STATUS_GCC_UNWIND:
|
||||||
|
case STATUS_GCC_FORCED:
|
||||||
|
status = DBG_EXCEPTION_NOT_HANDLED;
|
||||||
|
break;
|
||||||
|
#endif
|
||||||
default:
|
default:
|
||||||
status = DBG_EXCEPTION_NOT_HANDLED;
|
status = DBG_EXCEPTION_NOT_HANDLED;
|
||||||
if (ev.u.Exception.dwFirstChance)
|
if (ev.u.Exception.dwFirstChance)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user