reading relay log

Ferenc Wagner wferi at afavant.elte.hu
Wed Jan 7 20:19:56 CST 2004


Mike, Uwe, thanks for the quick reply!  Now I got to the end
of X11DRV_CreateDC (TRACEs added by me):

    wine_tsx11_lock();
    TRACE("physDev=%p\n", physDev);
    physDev->gc = XCreateGC( gdi_display, physDev->drawable, 0, NULL );
    TRACE("XCreateGC returned %p\n", physDev->gc);
    XSetGraphicsExposures( gdi_display, physDev->gc, False );
    XSetSubwindowMode( gdi_display, physDev->gc, IncludeInferiors );
    XFlush( gdi_display );
    wine_tsx11_unlock();

and --debugmsg +winetest,+dialog,+dc,+x11drv,+relay shows

trace:dc:CreateDCW (driver=L"DISPLAY", device=(null), output=(null)): returning 0x7c
000a:Call x11drv.CreateDC(40347978,40347990,40def154 L"DISPLAY",00000000,00000000,00000000) ret=40899405
000a:Call ntdll.RtlAllocateHeap(40300000,00000008,0000008c) ret=409ee0e1
000a:Ret  ntdll.RtlAllocateHeap() retval=40347ab8 ret=409ee0e1
000a:Call gdi32.GetObjectType(0000007c) ret=409ee125
000a:Call kernel32._EnterSysLevel(408cf340) ret=408a5547
000a:Ret  kernel32._EnterSysLevel() retval=0000000c ret=408a5547
000a:Call kernel32._LeaveSysLevel(408cf340) ret=408a56e3
000a:Ret  kernel32._LeaveSysLevel() retval=00000000 ret=408a56e3
000a:Ret  gdi32.GetObjectType() retval=00000003 ret=409ee125
000a:Call ntdll.RtlEnterCriticalSection(40a20700) ret=409fe910
000a:Ret  ntdll.RtlEnterCriticalSection() retval=00000000 ret=409fe910
trace:x11drv:X11DRV_CreateDC physDev=0x40347ab8
0009:Ret  kernel32.CreateThread() retval=00000040 ret=40593e07
trace:winetest:report thread 0x40 created
0009:Call kernel32.WaitForSingleObject(0000003c,ffffffff) ret=40593e4c
[5 seconds of pause here]
err:ntdll:RtlpWaitForCriticalSection section 0x40333ff8 "?" wait timed out in thread 000a, blocked by 0009, retrying (60 sec)

I am going to bed now, but can somebody advice me where to
look further?  To provide some context, the app goes like:

DWORD WINAPI DlgThreadProc ()
{
    InitCommonControls ();
    dialog = CreateDialog (GetModuleHandle (NULL),
                           MAKEINTRESOURCE (IDD_STATUS),
                           NULL, DlgProc);

[thread 000a is executing this CrateDialog call above]
[...]
}

[and here is the main thread (0009)]

            DlgThread = CreateThread (NULL, 0, DlgThreadProc,
                                      NULL, 0, &DlgThreadID);
            WINE_TRACE ("thread %p created\n", DlgThread);
            ret = WaitForSingleObject (initEvent, INFINITE);

This multithread business is rather new for me, I would be
grateful for any insights.  The cross-compiled version runs
on XP all right.

Feri.



More information about the wine-devel mailing list