Jinoh Kang (@iamahuman) commented about dlls/ntdll/unix/thread.c:
+ */ +void check_signal_stack(void) +{ + stack_t ss; + + sigaltstack( NULL, &ss ); + if (!(ss.ss_flags & SS_ONSTACK)) + { + struct sigaction sa; + + /* if this happened we probably got a signal from a non-wine thread. + * regardless of the reason, we can't get access to the TEB (or there + * isn't one), so print a message and bail */ + fprintf( stderr, "wine: received signal not on the signal stack; terminating\n" ); + + /* exit with SIGSEGV so that we dump core */ How about using `abort()`?
``` Signal Standard Action Comment ------------------------------------------------------------------------ SIGABRT P1990 Core Abort signal from abort(3) ``` -- https://gitlab.winehq.org/wine/wine/-/merge_requests/2126#note_26518