| delorie.com/archives/browse.cgi | search |
| X-Recipient: | archive-cygwin AT delorie DOT com |
| DomainKey-Signature: | a=rsa-sha1; c=nofws; d=sourceware.org; h=list-id |
| :list-unsubscribe:list-subscribe:list-archive:list-post | |
| :list-help:sender:message-id:date:from:mime-version:to:subject | |
| :references:in-reply-to:content-type:content-transfer-encoding; | |
| q=dns; s=default; b=v1KdOZNcHCzaVMHIe27X7LDsZ6nlGvRsDi07xNio0Q8 | |
| E3WQQKZIGrox0pEmCQJLewe5PAju+m6lyR4eHamnvQ1GgZ06xC7XtPXGXO/2MyEt | |
| iNQ2Bc6AOSauHcqXprBbAosvNmBjngbTAUwvSZH4hK3XzRX6fczsBFIgq9QBvjlM | |
| = | |
| DKIM-Signature: | v=1; a=rsa-sha1; c=relaxed; d=sourceware.org; h=list-id |
| :list-unsubscribe:list-subscribe:list-archive:list-post | |
| :list-help:sender:message-id:date:from:mime-version:to:subject | |
| :references:in-reply-to:content-type:content-transfer-encoding; | |
| s=default; bh=7OSZmu+e9neXPxRRSrkYkhHUIEo=; b=sLzkSCpsi67UxEdat | |
| glyIzwIcUnHwmSzoPygxOsm1wLSAKBOvJtPoPGwHpmGA9f52IXs1Vuagoo5gPT63 | |
| x0LQxTVSflE9VhE4EolTBJg9jkddqHLUEjbX0Pdz4OgapLqJu4PvTX4sAxVZ0kqB | |
| Pf1/CBK9xzYAVGcmURMihrtslI= | |
| Mailing-List: | contact cygwin-help AT cygwin DOT com; run by ezmlm |
| List-Id: | <cygwin.cygwin.com> |
| List-Subscribe: | <mailto:cygwin-subscribe AT cygwin DOT com> |
| List-Archive: | <http://sourceware.org/ml/cygwin/> |
| List-Post: | <mailto:cygwin AT cygwin DOT com> |
| List-Help: | <mailto:cygwin-help AT cygwin DOT com>, <http://sourceware.org/ml/#faqs> |
| Sender: | cygwin-owner AT cygwin DOT com |
| Mail-Followup-To: | cygwin AT cygwin DOT com |
| Delivered-To: | mailing list cygwin AT cygwin DOT com |
| Authentication-Results: | sourceware.org; auth=none |
| X-Virus-Found: | No |
| X-Spam-SWARE-Status: | Yes, score=5.3 required=5.0 tests=AWL,BAYES_50,FREEMAIL_FROM,KAM_COUK,KAM_FROM_URIBL_PCCC,SPF_PASS autolearn=no version=3.3.2 |
| X-HELO: | out.ipsmtp2nec.opaltelecom.net |
| X-IronPort-Anti-Spam-Filtered: | true |
| X-IronPort-Anti-Spam-Result: | A2CWAQB+OhNV/wVe0lUNT4dExSeCUgKCJwEBAQEBAYUSAQEEIw8BBVELGAICBSECAg8CRhMIAQG3P3CaIwEBAQcBAQEBAQEcgSGKAIR9FoJSgUUFjkKIIYR3j0qDR4IkHIFQgzIBAQE |
| X-IPAS-Result: | A2CWAQB+OhNV/wVe0lUNT4dExSeCUgKCJwEBAQEBAYUSAQEEIw8BBVELGAICBSECAg8CRhMIAQG3P3CaIwEBAQcBAQEBAQEcgSGKAIR9FoJSgUUFjkKIIYR3j0qDR4IkHIFQgzIBAQE |
| Message-ID: | <55133B41.80108@tiscali.co.uk> |
| Date: | Wed, 25 Mar 2015 22:48:33 +0000 |
| From: | David Stacey <drstacey AT tiscali DOT co DOT uk> |
| User-Agent: | Mozilla/5.0 (Windows NT 6.1; WOW64; rv:31.0) Gecko/20100101 Thunderbird/31.5.0 |
| MIME-Version: | 1.0 |
| To: | cygwin AT cygwin DOT com |
| Subject: | Re: static vs. shared linking |
| References: | <5510A9AB DOT 7020607 AT tiscali DOT co DOT uk> <5511AF73 DOT 9070607 AT tiscali DOT co DOT uk> <20150325090453 DOT GB3017 AT calimero DOT vinschen DOT de> <850E2E37-EA86-448E-9B9F-206C662E14E5 AT etr-usa DOT com> <55133295 DOT 1090105 AT tiscali DOT co DOT uk> |
| In-Reply-To: | <55133295.1090105@tiscali.co.uk> |
| X-IsSubscribed: | yes |
On 25/03/2015 22:11, David Stacey wrote:
> On 25/03/2015 16:59, Warren Young wrote:
>> If that makes the symptom disappear, I wonder if there’s some problem
>> with a Cygwin *.exe owning a std::string that gets resized by a
>> Cygwin *.dll. If so, that probably*is* a memory ownership
>> coordination problem that affects Cygwin proper.
>
> In order to test your hypothesis about memory ownership, I'll create a
> test that malloc(3)s some memory in the .exe and free(3)s it in a
> shared library; Corinna showed that the crash was coming from an
> abort() in free(). However, I can't believe it's that simple - you'd
> think there would be dozens of programmes crashing for this reason.
Indeed. I created a very simple test that alloc(3)s memory in main() and
then free(3)s it in a shared library. That works fine. So there's more
to it than that :-(
Dave.
// crash_library.h
#ifndef CRASH_LIBRARY_H
#define CRASH_LIBRARY_H
extern void Crash(unsigned short *ptr);
#endif // CRASH_LIBRARY_H
// crash_library.cpp
#include "crash_library.h"
#include <stdlib.h>
void Crash(unsigned short *ptr)
{
free(ptr);
}
// main.cpp
#include "crash_library.h"
#include <stdlib.h>
int main()
{
unsigned short*ptr = (unsigned short*)malloc(sizeof(unsigned short));
Crash(ptr);
return 0;
}
--
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
| webmaster | delorie software privacy |
| Copyright © 2019 by DJ Delorie | Updated Jul 2019 |