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