public inbox for cygwin@cygwin.com
 help / color / mirror / Atom feed
From: David Stacey <drstacey@tiscali.co.uk>
To: cygwin@cygwin.com
Subject: Re: static vs. shared linking
Date: Wed, 25 Mar 2015 22:42:00 -0000	[thread overview]
Message-ID: <55133295.1090105@tiscali.co.uk> (raw)
In-Reply-To: <850E2E37-EA86-448E-9B9F-206C662E14E5@etr-usa.com>

On 25/03/2015 16:59, Warren Young wrote:
> On Mar 25, 2015, at 3:04 AM, Corinna Vinschen<corinna-cygwin@cygwin.com>  wrote:
>>
>> And this is where it comes from.  It's a call to
>>
>>     void basic_string<_CharT, _Traits, _Alloc>::reserve(size_type __res)
> David, what happens if you say
>
>      wtext.reserve(1);
>
> inside runTests() before the call to crash()?
>
> 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.

Thank you for taking the time to look at this. You are quite correct. 
When I reserve() space on the string in runTests() then the problem goes 
away.

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.

> I’ve run both versions under valgrind on a Linux box here, and they can find no fault with your code.

Thanks. Obviously, when coming across problems like this, my first 
thought is that I've managed to do something silly. But if neither you, 
me nor Corinna can spot an obvious blunder then that opens the 
possibility that there's something fruity going on.

> On manual inspection, I, too find it to be perfectly cromulent.

Personally, I was thoroughly discombobulated.

Dave.



--
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

  reply	other threads:[~2015-03-25 22:11 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-03-24  8:07 David Stacey
2015-03-24 18:50 ` David Stacey
2015-03-25  9:17   ` Corinna Vinschen
2015-03-25 17:10     ` Warren Young
2015-03-25 22:42       ` David Stacey [this message]
2015-03-25 23:28         ` David Stacey
2015-03-25 22:48     ` David Stacey
2015-03-30 11:04       ` Corinna Vinschen
2015-03-30 19:17         ` David Stacey
2015-03-30 23:02           ` Andrey Repin
2015-03-31  0:50             ` David Stacey
2015-03-31  3:26               ` Andrey Repin
2015-03-31  9:05               ` Achim Gratz
2015-03-31 10:04                 ` Corinna Vinschen
2015-03-31  9:07           ` Corinna Vinschen
2015-03-31 18:00             ` David Stacey
2015-04-09  8:15               ` David Stacey
2015-04-09 17:24                 ` Corinna Vinschen
2015-04-11 18:51                   ` David Stacey
2015-04-09 21:32                 ` Larry Hall (Cygwin)
2015-04-11 19:21                   ` David Stacey
2015-03-25 23:29 ` David Stacey

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=55133295.1090105@tiscali.co.uk \
    --to=drstacey@tiscali.co.uk \
    --cc=cygwin@cygwin.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).