https://bugs.winehq.org/show_bug.cgi?id=52159
Bug ID: 52159 Summary: 64-bit cygwin gdb.exe and python3.8.exe fail to run Product: Wine Version: 6.22 Hardware: x86-64 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: ntdll Assignee: wine-bugs@winehq.org Reporter: bernhardu@mailbox.org Distribution: ---
Created attachment 71205 --> https://bugs.winehq.org/attachment.cgi?id=71205 details.txt
This issue can be seen if the workarounds for bug #47808 got applied first.
Both gdb.exe and python3.8.exe fail in the python initialisation.
As far as I see it python allocates 8 bytes for a sem_t structure. This uninitialized struct is given to sem_init which checks if this is a previously initialized semaphore by checking with verifyable_object_isvalid. This check happens inside a __try/__endtry [2] [3].
That way we end up in RtlUnwindEx, which inspects NtCurrentTeb()->Tib.ExceptionList. Unfortunately this list finally contains a pointer to the initial stack, which cygwin deallocated before [1].
See details.txt.