On 10/26/2019 11:07 AM, Roumen Petrov wrote: > > After additional tests (research) I was able to isolate issues to simple test > case. Please find attached "test-dlclose.c" and "Makefile". > First test is as is: > > $ make > cc -g -Wall -Wextra test-dlclose.c -o test-dlclose > ./test-dlclose > exit with code 33 > make: [Makefile:4: all] Error 33 (ignored) > > For next test change test-dlclose.c to define DLCLOSE_ATEXIT ( s/#if 0/#if 1/ > ): > $ make > cc -g -Wall -Wextra test-dlclose.c -o test-dlclose > ./test-dlclose > exit with code 33
I ran this second version of test-dlclose (with DLCLOSE_ATEXIT defined) under strace and got the following: $ strace -o trace.out ./test-dlclose.exe exit with code 33 Segmentation fault The strace output ends with 30 30143 [main] test-dlclose 847 write: 18 = write(1, 0x600061E20, 18) --- Process 33456 (pid: 847) unloaded DLL at 00000003e7930000 --- Process 33456 (pid: 847), exception c0000005 at 00000003e7931080 --- Process 33456 (pid: 847) thread 26088 exited with status 0xc0000005 --- Process 33456 (pid: 847) thread 33544 exited with status 0xc0000005 --- Process 33456 (pid: 847) thread 36020 exited with status 0xc0000005 --- Process 33456 exited with status 0xc0000005 The address 00000003e7930000 seems to be in /usr/bin/cygz.dll, which is the DLL that got unloaded. After installing zlib-debuginfo, I ran addr2line to see where the crash occurred, and this too crashed: $ addr2line -C -f -i -p -e /usr/bin/cygz.dll 0x3e7931080 Segmentation fault (core dumped) That's as far as I've gotten. Ken -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple