Wine crash before initialization - is this faulty code ?

Martin Wilck Martin.Wilck at Fujitsu-Siemens.com
Tue May 21 13:38:47 CDT 2002


Hi -

I had a wine crash today that occurs before wine is properly
initialized, and therefore was pretty nasty to debug. However I traced
it down to the test program below.

The test program is loaded as a winelib app (i.e. a dll).

The program defines a global variable that is an instance of a class
where the constructor calls InitalizeCriticalSection(). 
Interestingly, the call to RtlInitializeCriticalSection() completes
successfully, but subsequently the program crashes and the stack is
corrupted, so that I can't really see where the program is stuck.
It seems that the dlopen() call in wine_dlopen() on Test.so never
finishes, though.

This seems to run fine on windows.
Comments?

Martin

#include <winbase.h>
#include <stdio.h>

class cs_test;

class cs_test {
public:
    CRITICAL_SECTION crit;
    cs_test();
    ~cs_test() {};
};

cs_test::cs_test()
{
    memset ( &(this->crit), 0, sizeof (CRITICAL_SECTION) );
    InitializeCriticalSection ( &(this->crit) );
};

// this statement causes the crash when called at DLL load time
cs_test tst;

int main()
{
    return 0;
}


-- 
Martin Wilck                Phone: +49 5251 8 15113
Fujitsu Siemens Computers   Fax:   +49 5251 8 20409
Heinz-Nixdorf-Ring 1	    mailto:Martin.Wilck at Fujitsu-Siemens.com
D-33106 Paderborn           http://www.fujitsu-siemens.com/primergy








More information about the wine-devel mailing list