Thanks for your quick reply...

Vitaliy Margolen wine-devel at kievinfo.com
Thu Sep 22 13:23:31 CDT 2005


Thursday, September 22, 2005, 11:23:43 AM, Esko Woudenberg wrote:
> Would I be correct in guessing that:
> "Relayexclude"="RtlEnterCriticalSection;RtlLeaveCriticalSection;
> _EnterSysLevel;_LeaveSysLevel;_CheckNotSysLevel;NtCurrentTeb;
> LdrAccessResource;RtlUpperChar;kernel32.97;kernel32.98;TlsGetValue"

> are generally not important messages for debugging?
I think wine beat them to death so you can be sure they do work ;-)
Also they are the most commonly called functions that don't mean
anything unless you are interested in that particular area.

> (and also is +relay enough or should I use +all?)
+relay is a good starting point to see what is going on. But having a
source, you don't really need it. You should know where is your
program fails what part of Wine (like ole, comctl, file ops, etc.)
Then you can enable that trace and investigate that part.

>> Ok, here it looks like it either really runs out of
>> stack or just
>> trying to access the last page of the stack. Wine
>> has a problem in those
>> areas. It doesn't grow stack and throws that
>> exception when app tries to
>> access last page of the stack, that works under
>> windows.
> If that is the case, is there a work-around?
Sort of. I have a program that just clears whole stack after it's
done. For this I just disabled guard pages that Wine uses to raise
that exception. If your program really runs out of stack - i.e. ESP
points to the last stack page then you need to find out why does it
do that. It could be just a case of nested functions that never return
because they not getting correct results from Wine.

> Detecting Wine...
>> Bad idea. You need to find out what is wrong with
>> Wine and fix it.
>> Or find the problem and let us fix it.
> I understand your concerns but aim to follow parallel
> paths...  (Might end up prompting user "Wine detected
> - Work around known problems?  Y/N")
Most of the time, you should be able to find the problem and fix it
in Wine. The hardest part is to find it, not to fix it (unless that is
something really complicated. But then you can't just remove huge
chunk of your program anyway.)

If you can find the problem, I'm sure people here will help you
fix it, if you don't know how. What you can do in this case is to
add a test to Wine's regression test suite.

Vitaliy







More information about the wine-devel mailing list