Hi,
normally when I start Process Explorer it automatically launches the 'explorer' process.
With the latest git 'explorer' crashes. Regression testing showed that this is most likely due to the XEmbed patch:
http://source.winehq.org/git/?p=wine.git;a=commit;h=60a97505a63e5102f239d0d4...
Debug output:
000b:trace:x11drv:X11DRV_CreateBitmap (0x28c) 16x16 24 bpp 000b:trace:x11drv:X11DRV_GetBitmapBits (bmp=0x28c, buffer=0x16c1a4, count=0x300) 0009:trace:x11drv:X11DRV_SetWindowPos hwnd 0x1003a, after (nil), swp 0,0 391x17 flags 00000014 0009:trace:x11drv:SWP_DoWinPosChanging hwnd 0x1003a, after (nil), swp 0,0 391x17 flags 00001814 0009:trace:x11drv:SWP_DoWinPosChanging current (0,0)-(391,17) style 500000c2 new (0,0)-(391,17) 0009:trace:x11drv:X11DRV_set_window_pos win 0x1003a window (0,0)-(391,17) client (0,0)-(391,17) style 500000c2 0009:trace:x11drv:X11DRV_SetWindowPos status flags = 1807 000b:trace:x11drv:X11DRV_CreateBitmap (0x298) 15x15 24 bpp 000b:trace:x11drv:X11DRV_GetBitmapBits (bmp=0x298, buffer=0x16c122, count=0x2b2) 000b:trace:x11drv:X11DRV_set_window_pos win 0x10052 window (0,0)-(26,45) client (0,0)-(26,45) style 04c00000 000b:trace:x11drv:systray_dock_window Docking tray icon 0x10052 000b:trace:x11drv:X11DRV_SetWindowPos hwnd 0x10052, after (nil), swp 1025,769 0x0 flags 00000005 000b:trace:x11drv:SWP_DoWinPosChanging hwnd 0x10052, after (nil), swp 1025,769 0x0 flags 00001805 000b:trace:x11drv:SWP_DoWinPosChanging current (0,0)-(26,45) style 04c00000 new (1025,769)-(1051,814) 000b:trace:x11drv:SWP_DoOwnedPopups (0x10052) hInsertAfter = (nil) 000b:trace:x11drv:X11DRV_set_window_pos win 0x10052 window (1025,769)-(1051,814) client (1025,769)-(1051,814) style 04c00000 000b:trace:x11drv:X11DRV_sync_window_position setting win 3e00002 pos 1028,791,20x20 after 3 changes=f 000b:trace:x11drv:X11DRV_SetWindowPos status flags = 0801 000b:trace:x11drv:X11DRV_CreateBitmap (0x2a8) 32x32 1 bpp 000b:trace:x11drv:X11DRV_SetBitmapBits (bmp=0x2a8, bits=0x15b760, count=0x80) 000b:trace:x11drv:X11DRV_CreateBitmap (0x2a4) 32x32 24 bpp 000b:trace:x11drv:X11DRV_SetBitmapBits (bmp=0x2a4, bits=0x16c3e0, count=0xc00) 000b:trace:x11drv:X11DRV_set_window_pos win 0x10052 window (0,0)-(26,45) client (0,0)-(26,45) style 04c00000 000b:trace:x11drv:X11DRV_sync_window_position setting win 3e00002 pos 3,22,20x20 after 3 changes=3 000b:trace:x11drv:X11DRV_CreateWindow hwnd 0x10052 cs 0,0 26x45 000b:trace:x11drv:X11DRV_set_window_pos win 0x10052 window (0,0)-(26,45) client (3,22)-(23,42) style 04c00000 000b:trace:x11drv:X11DRV_sync_window_position setting win 3e00002 pos 3,22,20x20 after 3 changes=40 000b:trace:x11drv:X11DRV_CreateWindow win 0x10052 window 0,0,26,45 client 3,22,23,42 whole 3,22,23,42 X client 0,0,20,20 xwin 3e00002 000b:trace:x11drv:X11DRV_ShowWindow hwnd=0x10052, cmd=8, wasVisible 0 000b:trace:x11drv:X11DRV_SetWindowPos hwnd 0x10052, after (nil), swp 0,0 0x0 flags 00000053 000b:trace:x11drv:SWP_DoWinPosChanging hwnd 0x10052, after (nil), swp 0,0 0x0 flags 00001853 000b:trace:x11drv:SWP_DoWinPosChanging current (0,0)-(26,45) style 04c00000 new (0,0)-(26,45) 000b:trace:x11drv:SWP_DoOwnedPopups (0x10052) hInsertAfter = (nil) 000b:trace:x11drv:X11DRV_set_window_pos win 0x10052 window (0,0)-(26,45) client (3,22)-(23,42) style 14c00000 000b:trace:x11drv:X11DRV_sync_window_position setting win 3e00002 pos 3,22,20x20 after 3 changes=40 000b:trace:x11drv:X11DRV_set_window_pos mapping win 0x10052 000b:trace:x11drv:systray_dock_window Docking tray icon 0x10052 000b:trace:x11drv:X11DRV_SetWindowPos hwnd 0x10052, after (nil), swp 1025,769 0x0 flags 00000005 000b:err:syslevel:_CheckNotSysLevel Holding lock 0x603ef040 level 2 000b:trace:seh:raise_exception code=80000003 flags=0 addr=0x77a5fc40 000b:trace:seh:raise_exception eax=00000044 ebx=77a83f64 ecx=602daa80 edx=00000044 esi=7ffdc044 edi=00000000 000b:trace:seh:raise_exception ebp=0034e2b8 esp=0034e290 cs=0073 ds=007b es=007b fs=003b gs=0033 flags=00000206 000b:trace:seh:call_stack_handlers calling handler at 0x77a05ec8 code=80000003 flags=0 wine: Unhandled exception 0x80000003 at address 0x77a5fc40 (thread 000b), starting debugger... 000b:trace:seh:start_debugger Starting debugger "winedbg --auto 10 64" WineDbg starting on pid 0xa 000b:trace:seh:call_stack_handlers handler at 0x77a05ec8 returned 1 000d:fixme:ntdll:NtDeviceIoControlFile Unsupported ioctl 8335000c (device=8335 access=0 func=3 method=0) 0009:trace:seh:raise_exception code=c000013a flags=0 addr=0x7bfff400 0009:trace:seh:raise_exception eax=00000003 ebx=00000007 ecx=0033e2ec edx=00000008 esi=0033e2ec edi=7ffdc000 0009:trace:seh:raise_exception ebp=0033e300 esp=0033e2b8 cs=0073 ds=007b es=007b fs=003b gs=0033 flags=00000293 0009:trace:seh:call_stack_handlers calling handler at 0x441d00 code=c000013a flags=0 [paul@penguin latest]$ _CheckNotSysLevel () at /wine/wine-git/dlls/kernel/syslevel.c:178 0x77a5fc41 _CheckNotSysLevel+0x41 [/wine/wine-git/dlls/kernel/syslevel.c:178] in kernel32: addl $36,%esp 178 } Modules: Module Address Debug info Name (46 modules) ELF 101000-16f000 Deferred libfreetype.so.6 ELF 175000-190000 Deferred ld-linux.so.2 ELF 192000-1b7000 Deferred libm.so.6 ELF 1b9000-1bd000 Deferred libdl.so.2 ELF 1bf000-1d2000 Deferred libz.so.1 ELF 1d4000-1da000 Deferred libxdmcp.so.6 ELF 1dc000-1df000 Deferred libxau.so.6 ELF 222000-232000 Deferred libxext.so.6 ELF 23a000-25b000 Deferred libexpat.so.0 ELF 25d000-266000 Deferred libxrender.so.1 ELF 2c2000-2c4000 Deferred libnvidia-tls.so.1 ELF 2cb000-2e1000 Deferred libnsl.so.1 ELF 4e8000-4ec000 Deferred libcap.so.1 ELF 4ee000-561000 Deferred libdbus-1.so.2 ELF 74e000-752000 Deferred libxrandr.so.2 ELF 7bd000-7c2000 Deferred libxxf86vm.so.1 ELF 7da000-7df000 Deferred libxfixes.so.3 ELF 927000-931000 Deferred libxcursor.so.1 ELF adf000-c12000 Deferred libc.so.6 ELF c9b000-ca5000 Deferred libhal.so.1 ELF ca8000-da5000 Deferred libx11.so.6 ELF da7000-dbb000 Deferred libpthread.so.0 ELF dbd000-dfa000 Deferred libfontconfig.so.1 ELF 41b4000-49cb000 Deferred libglcore.so.1 ELF 49cd000-4a5c000 Deferred libgl.so.1 ELF 78d5000-78ef000 Deferred libice.so.6 ELF 7915000-791e000 Deferred libsm.so.6 ELF 60000000-60111000 Deferred libwine.so.1 ELF 6025c000-602dc000 Deferred ntdll<elf> -PE 60270000-602dc000 \ ntdll ELF 602dc000-602f3000 Deferred explorer<elf> -PE 602e0000-602f3000 \ explorer ELF 602f3000-60429000 Deferred user32<elf> -PE 60310000-60429000 \ user32 ELF 60429000-604b9000 Deferred gdi32<elf> -PE 60440000-604b9000 \ gdi32 ELF 604b9000-604ff000 Deferred advapi32<elf> -PE 604c0000-604ff000 \ advapi32 ELF 6055d000-605e0000 Deferred winex11<elf> -PE 60570000-605e0000 \ winex11 ELF 60fcc000-60fe8000 Deferred imm32<elf> -PE 60fd0000-60fe8000 \ imm32 ELF 778e0000-778eb000 Deferred libnss_files.so.2 ELF 779da000-77adf000 Stabs kernel32<elf> -PE 779f0000-77adf000 \ kernel32 ELF 7bf00000-7bf03000 Deferred <wine-loader> Threads: process tid prio (all id:s are in hex) 0000000a (D) c:\windows\system32\explorer.exe 0000000c 0 0000000b 0 <==
Any idea where to start looking?
Cheers,
Paul.
P.S. I write 'most likely due' as I've seen several cases of different results when bisecting.
On Wed, 2006-08-23 at 20:39 +0200, Paul Vriens wrote:
Hi,
normally when I start Process Explorer it automatically launches the 'explorer' process.
With the latest git 'explorer' crashes. Regression testing showed that this is most likely due to the XEmbed patch:
http://source.winehq.org/git/?p=wine.git;a=commit;h=60a97505a63e5102f239d0d4...
Yep, that's the one. I'm looking into it now. BTW, thanks for the debug output.
Here's the most interesting part:
000b:trace:x11drv:X11DRV_set_window_pos mapping win 0x10052 000b:trace:x11drv:systray_dock_window Docking tray icon 0x10052 000b:trace:x11drv:X11DRV_SetWindowPos hwnd 0x10052, after (nil), swp 1025,769 0x0 flags 00000005 000b:err:syslevel:_CheckNotSysLevel Holding lock 0x603ef040 level 2 000b:trace:seh:raise_exception code=80000003 flags=0 addr=0x77a5fc40 000b:trace:seh:raise_exception eax=00000044 ebx=77a83f64 ecx=602daa80 edx=00000044 esi=7ffdc044 edi=00000000 000b:trace:seh:raise_exception ebp=0034e2b8 esp=0034e290 cs=0073 ds=007b es=007b fs=003b gs=0033 flags=00000206 000b:trace:seh:call_stack_handlers calling handler at 0x77a05ec8 code=80000003 flags=0 wine: Unhandled exception 0x80000003 at address 0x77a5fc40 (thread 000b), starting debugger...
What's happening here is that we need to make sure the window isn't mapped when we dock it, so the patch moves it offscreen. Looks like the problem is with SetWindowPos. Seems like we're holding a lock and trying to acquire another one, and _CheckNotSysLevel doesn't like that and thus it throws a breakpoint. I'll check it out and see if I can get a fix.
Thanks, James Liggett
On Wed, 2006-08-23 at 20:39 +0200, Paul Vriens wrote:
Hi,
normally when I start Process Explorer it automatically launches the 'explorer' process.
With the latest git 'explorer' crashes. Regression testing showed that this is most likely due to the XEmbed patch:
http://source.winehq.org/git/?p=wine.git;a=commit;h=60a97505a63e5102f239d0d4...
Update: I've done some quick testing and it seems that if i move the systray_dock_window call to X11DRV_CreateWindow, things work fine. It appears that it isn't safe to call SetWindowPos on a window that hasn't been fully created yet, as is the case with the patch in git right now. But I'm not sure if this is a correct solution...
Does this patch work for you?
http://www.winehq.org/pipermail/wine-patches/2006-August/030049.html
Does this patch work for you?
http://www.winehq.org/pipermail/wine-patches/2006-August/030049.html
Hi James,
yes, the patch fixes the problem.
Wasn't this as your original patch intended? AJ must have changed this for a reason, if so.
Cheers,
Paul.
Hi Paul,
yes, the patch fixes the problem.
Wasn't this as your original patch intended? AJ must have changed this for a reason, if so.
It was a part of one of my revisions; I got rid of it in the final version I sent just to make sure I wasn't taking any chances, as AJ has been aversive to this patch in the past. I *did* test this before I sent it, and it seemed to work. But I must have screwed up someplace (I think I was using my installed copy, which used a working but slightly incorrect version of the patch) BTW, AJ did change some parts of the patch (I was missing a wine_tsx11_lock/unlock on an X call, which he fixed for me. Alexandre, if you read this, thanks for that :)
James