1.7.9: static const std::string initialization lost in child process when using fork, dlopen

Cliff Hones cliff@hones.org.uk
Sun Aug 21 17:10:00 GMT 2011


On 21/08/2011 17:50, Christopher Faylor wrote:
> On Sun, Aug 21, 2011 at 01:48:21PM +0200, whans@web.de wrote:
>> Hello,
>> ??
>> it seems that a child process does not see the initialization of a
>> static const std::string variable if it is defined in a dll. Instead this corrupt variable
>> lead to a STATUS_ACCESS_VIOLATION.
>> ??
>> The following 4 example files demonstrate this behaviour:
> 
> Am I the only person who sees lots of strange characters in the examples
> below where, presumably there is supposed to be whitespace?
> 
> cgf
> 
>> 1) dllif.h: ?? ?? ??(define the dll's interface)
>> #include <string>
>> class cTestIf {
>> public:
>> ?? virtual std::string get() = 0;
>> };
>> ??
>> ??
> 
> ...

Well, I'm afraid my mind-reading skills aren't good enough to answer that,
but my mail client doesn't show them (TB under Windows).

However, it didn't take long to find out that they are UTF-8 C2 A0
sequences, which is the code for a non-breaking white space.

The mime header does have "Content-Type: text/plain; charset="UTF-8"", so
it looks like your email client may be to blame.

-- Cliff


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



More information about the Cygwin mailing list