Re: LockWindowUpdate

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 5/6/05, Raimund Eimann <raimund@xxxxxxxxxxxxxxxxx> wrote:
> 
> I've appended some of the output in to file: (this includes the first two
> occurrences of "err:" as line header)...
> 
> Cheers,
> Raimund
> 
> 0009:Call ntdll.RtlEnterCriticalSection(42020a64) ret=00415bad
> 0009:Ret  ntdll.RtlEnterCriticalSection() retval=00000000 ret=00415bad
> 0009:Call ntdll.RtlLeaveCriticalSection(42020a64) ret=00415bb9
> 0009:Ret  ntdll.RtlLeaveCriticalSection() retval=00000000 ret=00415bb9
> 0009:Call ntdll.RtlEnterCriticalSection(42020a8c) ret=00415bad
> 0009:Ret  ntdll.RtlEnterCriticalSection() retval=00000000 ret=00415bad
> 0009:Call ntdll.RtlLeaveCriticalSection(42020a8c) ret=00415bb9
> 0009:Ret  ntdll.RtlLeaveCriticalSection() retval=00000000 ret=00415bb9
> 0009:Call ntdll.RtlEnterCriticalSection(42020ab4) ret=00415bad
> 0009:Ret  ntdll.RtlEnterCriticalSection() retval=00000000 ret=00415bad
> 0009:Call ntdll.RtlLeaveCriticalSection(42020ab4) ret=00415bb9
> 0009:Ret  ntdll.RtlLeaveCriticalSection() retval=00000000 ret=00415bb9
> 0009:Call ntdll.RtlDeleteCriticalSection(42052450) ret=00417174
> 0009:Ret  ntdll.RtlDeleteCriticalSection() retval=00000000 ret=00417174
> 0009:Call ntdll.RtlEnterCriticalSection(42020a64) ret=00415bad
> 0009:Ret  ntdll.RtlEnterCriticalSection() retval=00000000 ret=00415bad
> 0009:Call ntdll.RtlLeaveCriticalSection(42020a64) ret=00415bb9
> 0009:Ret  ntdll.RtlLeaveCriticalSection() retval=00000000 ret=00415bb9
> 0009:Call ntdll.RtlUnwind(406fd0b8,0040359e,406fbe78,00000000) ret=0040359e
> fs=003b
>  eax=406fbe78 ebx=406fb904 ecx=00411b4d edx=406fd0b8 esi=406fbe78 edi=401fd4f2
>  ebp=406fb920 esp=406fb8bc ds=007b es=007b gs=0033 flags=00000246
> 0009:Ret  ntdll.RtlUnwind() retval=00000000 ret=0040359e fs=003b
>  eax=00000000 ebx=406fb904 ecx=00411b4d edx=406fd0b8 esi=406fbe78 edi=401fd4f2
>  ebp=406fb920 esp=406fb8bc ds=007b es=007b gs=0033 flags=00000246
> 0009:Call ntdll.RtlUnwind(406fd298,0040359e,406fbe78,00000000) ret=0040359e
> fs=003b
>  eax=406fbe78 ebx=406fb904 ecx=00411b4d edx=406fd298 esi=406fbe78 edi=401fd4f2
>  ebp=406fb920 esp=406fb8bc ds=007b es=007b gs=0033 flags=00000246
> 0009:Call kernel32.FreeResource(005017e0) ret=00410967
> 0009:Ret  kernel32.FreeResource() retval=00000000 ret=00410967
> 0009:Ret  ntdll.RtlUnwind() retval=00000000 ret=0040359e fs=003b
>  eax=00000000 ebx=406fb904 ecx=00411b4d edx=406fd298 esi=406fbe78 edi=401fd4f2
>  ebp=406fb920 esp=406fb8bc ds=007b es=007b gs=0033 flags=00000246
> 0009:Call user32.UpdateWindow(00010044) ret=00424df2
> 0009:Call kernel32._EnterSysLevel(407ff5c0) ret=40766880
> err:syslevel:_EnterSysLevel (0x407ff5c0, level 2): Holding 0x41214d60, level
> 3. Expect deadlock!
> 0009:Call ntdll.RtlEnterCriticalSection(407ff5c0) ret=4052823b
> 0009:Ret  ntdll.RtlEnterCriticalSection() retval=00000000 ret=4052823b
> 0009:Ret  kernel32._EnterSysLevel() retval=405aa600 ret=40766880
> 0009:Call kernel32._LeaveSysLevel(407ff5c0) ret=40766910
> 0009:Call ntdll.RtlLeaveCriticalSection(407ff5c0) ret=40527f71
> 0009:Ret  ntdll.RtlLeaveCriticalSection() retval=00000000 ret=40527f71
> 0009:Ret  kernel32._LeaveSysLevel() retval=405aa7ce ret=40766910
> 0009:Ret  user32.UpdateWindow() retval=00000001 ret=00424df2
> 0009:Call user32.IsWindowVisible(00010022) ret=00431b15
> 0009:Call kernel32._EnterSysLevel(407ff5c0) ret=40766880
> err:syslevel:_EnterSysLevel (0x407ff5c0, level 2): Holding 0x41214d60, level
> 3. Expect deadlock!
> 0009:Call ntdll.RtlEnterCriticalSection(407ff5c0) ret=4052823b
> 0009:Ret  ntdll.RtlEnterCriticalSection() retval=00000000 ret=4052823b
> 0009:Ret  kernel32._EnterSysLevel() retval=405aa600 ret=40766880
> 0009:Call kernel32._LeaveSysLevel(407ff5c0) ret=40766910
> 

>From the bit of log we have here, UpdateWindow and IsWindowVisible are
being called, and we're getting a deadlock, well we're supposed to
expect it :-)  Can you run this command and pipe the output to another
log file?

grep "UpdateWindow" oldlogfile > newlogfile1
grep "IsWindowVisible" oldlogfile > newlogfile2

We can use newlogfile[1,2] to see how often and where these calls are
occurring.  I can't tell if we're calling UpdateWindow and
IsWindowVisible over and over again or not with this log, but post the
new logs and we'll have a look.  Anyone else have any ideas?

-- 
James Hawkins

_______________________________________________
wine-users mailing list
wine-users@xxxxxxxxxx
http://www.winehq.org/mailman/listinfo/wine-users

[Index of Archives]     [Gimp for Windows]     [Red Hat]     [Samba]     [Yosemite Camping]     [Graphics Cards]     [Wine Home]

  Powered by Linux