This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: program exit code, "at exit" handler and explicit close of shared objects


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]