This is the mail archive of the
cygwin
mailing list for the Cygwin project.
Re: program exit code, "at exit" handler and explicit close of shared objects
- From: Ken Brown <kbrown at cornell dot edu>
- To: "cygwin at cygwin dot com" <cygwin at cygwin dot com>
- Date: Tue, 29 Oct 2019 15:30:57 +0000
- Subject: Re: program exit code, "at exit" handler and explicit close of shared objects
- Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=cornell.edu; dmarc=pass action=none header.from=cornell.edu; dkim=pass header.d=cornell.edu; arc=none
- Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=fV8wsJe82w4Ak8xZS2I9N21bjFtJtcAL2d/n64jbXb4=; b=dPU9vO+aM1Cgan+1C8L293Hs97X0HJ/LgjLl4Wz198Iz2+5yEzzoPneQRssXESYbKrtfnyr3trzZuiVAEBNwN1MffBmdoJ7sQxPRmgz4gbGnzabsRaiNRDompP61xIGoY3NYJzNWEkko/Qg1zCXfNluE2epxVNo1achvsV0x7oD6K+8zMOmqyLwIas6ag3N/w4BrQxzu9wz/aFaMmP/tXg8g7D/s0y5gYg8+WCWjQBv8cN9a7bGH6TdRDoLk2TrZ5t3d96GgXQxKApQDZIRRPdu4mPw1bIaxmuIc1UD+W5Zx6kXpHzmM7qf6d3NoEwXaYXKV7dO1Yv724II4suaLDg==
- Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=GlVOp9RaxN1m74j+mO4nlQk5OW/nzDQOInlx3Xuhno+9f0ptEDIVms2RGPeERLKcNm05mHFHte4W+CQZItoDMUi6vaH5OYMeInYDhfeilETeRj0pPCVyvCJoNnt/fbfld8VpoScL6llMsm/ahft1iSYVVV29bmw8OaOFXSUqsr2G9WrUR5a46x155v5v6urzVv5l2r4WRcwGOyWfVigATrgHRu0T1CF3OAMuRqeFT44Pbvdvy+Gbw0FvOwpbL4egGPUSJ48MKUHfBovQQziezSqEhRAz0FAinXkszYFgRQ4VwJu6DqcJTQRGKzMxAZzgSdGw+ht0lYHK9TdW94iVEA==
- References: <a24efbf6-872e-1e5b-017a-b14c59d84550@roumenpetrov.info> <20754eea-2b5e-dbbb-6027-2643be062e41@cornell.edu>
On 10/29/2019 10:53 AM, Ken Brown wrote:
> 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
Sorry, I meant to say 00000003e7931080; 00000003e7930000 is the start of cygz.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
>
--
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