SIGSEGV in IDirectDrawImpl_EnumDisplayModes

Matthew Bloch matthew at bytemark.co.uk
Fri Nov 1 08:12:23 CST 2002


On Friday 01 November 2002 12:19, Lionel Ulmer wrote:
> > Yes, to my eye it looks like a linking problem but I'm not sure how to
> > tell. Maybe if I whittle it down to a single .c file which I can post to
> > the list it'll make it easier to diagnose.
>
> Well, the easier would be that, yes. Basically, just create the DDraw
> interface (as done in createDirectDrawObject) and call 'CreateSurface' on
> it. That should be enough to reproduce the problem (now that I think of it,
> I could do it myself, but well, I have no experience about creating Winelib
> apps :-) ).

Have managed to break my wine build after a cvs update (seem to immediately 
branch to zero running my program!), so still working on this.

> Another thing helpful would be a disassembly of the 'setUpWindowedSurfaces'
> method (this would show what code is generated for the
> 'mp_directDraw->CreateSurface' call and thus understand why it choose the
> wrong method).

Okay, if it'll help you although my knowledge of x86 calling conventions and 
post-286 instructions etc. (last x86 I wrote was in a BIOS five years ago) is 
pretty hopeless :-)

00002fac <setUpWindowedSurfaces__17tDirectDrawScreen>:
    2fac:       55                      push   %ebp
    2fad:       89 e5                   mov    %esp,%ebp
    2faf:       81 ec 8c 00 00 00       sub    $0x8c,%esp
    2fb5:       57                      push   %edi
    2fb6:       56                      push   %esi
    2fb7:       53                      push   %ebx
    2fb8:       8b 7d 08                mov    0x8(%ebp),%edi
    2fbb:       83 c4 fc                add    $0xfffffffc,%esp
    2fbe:       6a 6c                   push   $0x6c
    2fc0:       6a 00                   push   $0x0
    2fc2:       8d 5d 94                lea    0xffffff94(%ebp),%ebx
    2fc5:       53                      push   %ebx
    2fc6:       e8 fc ff ff ff          call   2fc7 
<setUpWindowedSurfaces__17tDirectDrawScreen+0x1b>
    2fcb:       c7 45 94 6c 00 00 00    movl   $0x6c,0xffffff94(%ebp)
    2fd2:       c7 45 98 01 00 00 00    movl   $0x1,0xffffff98(%ebp)
    2fd9:       c7 45 fc 00 02 00 00    movl   $0x200,0xfffffffc(%ebp)
    2fe0:       8b 57 08                mov    0x8(%edi),%edx
    2fe3:       8b 0a                   mov    (%edx),%ecx
    2fe5:       6a 00                   push   $0x0
    2fe7:       8d 47 10                lea    0x10(%edi),%eax
    2fea:       50                      push   %eax
    2feb:       53                      push   %ebx
    2fec:       52                      push   %edx
    2fed:       8b 41 20                mov    0x20(%ecx),%eax
    2ff0:       ff d0                   call   *%eax
    2ff2:       89 c6                   mov    %eax,%esi
    2ff4:       83 c4 10                add    $0x10,%esp
    2ff7:       8d 45 80                lea    0xffffff80(%ebp),%eax
    2ffa:       83 c4 fc                add    $0xfffffffc,%esp
    2ffd:       50                      push   %eax
    2ffe:       68 00 02 00 00          push   $0x200
    3003:       8d 5d 84                lea    0xffffff84(%ebp),%ebx
    3006:       53                      push   %ebx
    3007:       e8 fc ff ff ff          call   3008 
<setUpWindowedSurfaces__17tDirectDrawScreen+0x5c>
    300c:       83 c4 fc                add    $0xfffffffc,%esp
    300f:       53                      push   %ebx
    3010:       56                      push   %esi
    3011:       57                      push   %edi
    3012:       e8 fc ff ff ff          call   3013 
<setUpWindowedSurfaces__17tDirectDrawScreen+0x67>
    3017:       83 c4 20                add    $0x20,%esp
    301a:       eb 09                   jmp    3025 
<setUpWindowedSurfaces__17tDirectDrawScreen+0x79>
    301c:       8d 74 26 00             lea    0x0(%esi,1),%esi
    3020:       e8 fc ff ff ff          call   3021 
<setUpWindowedSurfaces__17tDirectDrawScreen+0x75>
    3025:       83 c4 f4                add    $0xfffffff4,%esp
    3028:       57                      push   %edi
    3029:       e8 fc ff ff ff          call   302a 
<setUpWindowedSurfaces__17tDirectDrawScreen+0x7e>
    302e:       83 c4 f4                add    $0xfffffff4,%esp
    3031:       57                      push   %edi
    3032:       e8 fc ff ff ff          call   3033 
<setUpWindowedSurfaces__17tDirectDrawScreen+0x87>
    3037:       83 c4 20                add    $0x20,%esp
    303a:       83 c4 f4                add    $0xfffffff4,%esp
    303d:       57                      push   %edi
    303e:       e8 fc ff ff ff          call   303f 
<setUpWindowedSurfaces__17tDirectDrawScreen+0x93>
    3043:       eb 02                   jmp    3047 
<setUpWindowedSurfaces__17tDirectDrawScreen+0x9b>
    3045:       eb d9                   jmp    3020 
<setUpWindowedSurfaces__17tDirectDrawScreen+0x74>
    3047:       8d a5 68 ff ff ff       lea    0xffffff68(%ebp),%esp
    304d:       5b                      pop    %ebx
    304e:       5e                      pop    %esi
    304f:       5f                      pop    %edi
    3050:       c9                      leave  
    3051:       c3                      ret    
    3052:       89 f6                   mov    %esi,%esi


-- 
Matthew Bloch         Bytemark Computer Consulting Limited
                                http://www.bytemark.co.uk/
                                  tel. +44 (0) 8707 455026




More information about the wine-devel mailing list