[prev in list] [next in list] [prev in thread] [next in thread] 

List:       wine-devel
Subject:    Re: Debugging crash in X11
From:       Dave Pickles <davep () nugate ! demon ! co ! uk>
Date:       1999-12-30 11:11:24
[Download RAW message or body]

On Wed, 29 Dec 1999, Ulrich Weigand wrote:
> > Next problem: running the application with the -synchronous flag I get the
> > "loading symbols" display on the terminal, however the application starts
> > and works! 
> 
> Hmmm.  I think DebugBreak() doesn't work quite as expected ...
> Could you try replacing the DebugBreak() call in X11DRV_USER_ErrorHandler
> (windows/x11drv/main.c) with something like *(char *)0 = 0; 
> 
> Bye,
> Ulrich

Yes that fixes the problem, now I get a decent crash report! Running "wine
-debugmsg +relay -synchronous 123w.exe" I get:

Call USER32.10: BeginPaint(000003b8,40e4f830) ret=03b3567e fs=0237
trace:relay:WINPROC_CallWndProc \
(wndproc=0x3b355c7,hwnd=000003b8,msg=WM_ERASEBKGND,wp=00000c84,lp=00000000) Call \
USER32.126: DefWindowProcA(000003b8,00000014,00000c84,00000000) ret=03b35609 fs=0237 \
Ret  USER32.126: DefWindowProcA() retval=00000000 ret=03b35609 fs=0237 Ret  \
USER32.10: BeginPaint() retval=00000c84 ret=03b3567e fs=0237 Call USER32.305: \
GetWindowLongA(000003b8,00000000) ret=03b35689 fs=0237 Ret  USER32.305: \
GetWindowLongA() retval=00001700 ret=03b35689 fs=0237 Call USER32.220: \
GetClientRect(000003b8,40e4f820) ret=03b3569b fs=0237 Ret  USER32.220: \
GetClientRect() retval=00000001 ret=03b3569b fs=0237 Call GDI32.115: \
BitBlt(00000c84,00000000,00000000,0000021c,00000136,00001700,00000000,00000000,00cc0020) \
ret=03b356c0 fs=0237 Call KERNEL32.340: GetLastError() ret=10214448 fs=0237
Ret  KERNEL32.340: GetLastError() retval=00000057 ret=10214448 fs=0237
Call KERNEL32.693: TlsGetValue(00000000) ret=10214456 fs=0237
Ret  KERNEL32.693: TlsGetValue() retval=40f8009c ret=10214456 fs=0237
Call KERNEL32.654: SetLastError(00000057) ret=102144aa fs=0237
Ret  KERNEL32.654: SetLastError() retval=40d40000 ret=102144aa fs=0237
Call KERNEL32.702: UnhandledExceptionFilter(bffff794) ret=1021868a fs=0237
Call KERNEL32.477: IsBadCodePtr(102092e0) ret=7fd83046 fs=0237
Ret  KERNEL32.477: IsBadCodePtr() retval=00000000 ret=7fd83046 fs=0237
Unhandled exception: page fault on write access to 0x00000000 in 32-bit code \
                (0x403a0eab).
.....{skip}.....
Backtrace:
=>0 0x403a0eab (X11DRV_USER_ErrorHandler+0x3 [main.c:305]) (ebp=bffffa6c)
  1 0x40596cab (_end+0x737e3) (ebp=bffffae8)
  2 0x40595441 (_end+0x71f79) (ebp=bffffb18)
  3 0x40590d81 (_end+0x6d8b9) (ebp=bffffb58)
  4 0x40590e0b (_end+0x6d943) (ebp=bffffb6c)
  5 0x40579aed (_end+0x56625) (ebp=bffffb84)
  6 0x403755f6 (BITBLT_InternalStretchBlt+0x8b2(dcDst=0x40894dec, xDst=0x0, yDst=0x0, \
widthDst=0x21c, heightDst=0x136, dcSrc=0x40895868, xSrc=0x0, ySrc=0x0, \
widthSrc=0x21c, heightSrc=0x136, rop=0xcc0020) [bitblt.c:1266]) (ebp=bffffc60)  7 \
0x40375bd0 (BITBLT_DoStretchBlt+0x38(p=0x40e4f6cc) [bitblt.c:1403]) (ebp=bffffc98)  8 \
0x4030f55a (CALL32_skip+0xc [call32.s]) (ebp=40e4f6b0)  9 0x40375d29 \
(X11DRV_BitBlt+0x91(dcDst=0x40894dec, xDst=0x0, yDst=0x0, width=0x21c, height=0x136, \
dcSrc=0x40895868, xSrc=0x0, ySrc=0x0, rop=0xcc0020) [bitblt.c:1460]) (ebp=40e4f6f8)  \
10 0x4024aee5 (BitBlt+0xf9(hdcDst=0xc84, xDst=0x0, yDst=0x0, width=0x21c, \
height=0x136, hdcSrc=0x1700, xSrc=0x0, ySrc=0x0, rop=0xcc0020) [bitblt.c:82]) \
(ebp=40e4f730)  11 0x4030d224 (RELAY_CallFrom32+0x614(ret_addr=0x3b356c0) \
[relay386.c:179]) (ebp=40e4f7e0)  12 0x40c00ec9 (GDI32.dll.BitBlt+0x5) (ebp=00001700)
*** Invalid address 0x00001700 (+0x9e4)

It crashes trying to paint the splash screen window by doing a BitBlt from
a memory DC created with CreateCompatibleDC(). It all looks perfectly
normal...

Dave Pickles


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic