SIGSEGV in IDirectDrawImpl_EnumDisplayModes

Matthew Bloch matthew at bytemark.co.uk
Thu Oct 31 07:45:53 CST 2002


Apologies for needing some more hand-holding: from Alexander's advice I now 
have the game linking and beginning to execute.  It now gets stuck while 
executing this piece of C++:

---------------------------------------------------------------------------
void tDirectDrawScreen::destroy()
{
  DDSURFACEDESC ddsd;
  memset(&ddsd,0,sizeof(DDSURFACEDESC));

  ddsd.dwSize         = sizeof(DDSURFACEDESC);
  ddsd.dwFlags        = DDSD_CAPS;
  ddsd.ddsCaps.dwCaps = DDSCAPS_PRIMARYSURFACE;

  HRESULT hr = mp_directDraw->CreateSurface(&ddsd, &mp_primarySurface, NULL);
  // crashes here
  ...
}
---------------------------------------------------------------------------

This being the segfault that occurs:

---------------------------------------------------------------------------
#0  0x40c92c4c in ?? ()
#1  0x40f56f5f in User_DirectDraw_EnumDisplayModes (iface=0x403acc00, 
dwFlags=1086925740, pDDSD=0x808c678, context=0x40c92be8, callback=0x40f55dfc 
<EnumDisplayModesCallbackThunk>) at ddraw/user.c:373
#2  0x40f55e81 in IDirectDrawImpl_EnumDisplayModes (This=0x40c92be8, 
dwFlags=1086925900, pDDSD=0x808c678, context=0x40c92a94, cb=0x40c92a94) at 
ddraw/thunks.c:348
#3  0x4080f9b2 in tDirectDrawScreen::setUpWindowedSurfaces (this=0x808c668) at 
Source/tDirectDrawScreen.cpp:852
#4  0x4080cf1f in tDirectDrawScreen::initialise (this=0x808c668, 
fullScreen=false, screenWidth=640, screenHeight=480) at 
Source/tDirectDrawScreen.cpp:88
#5  0x4080caac in tDirectDrawScreen::tDirectDrawScreen (this=0x808c668, 
fullScreen=false, screenWidth=640, screenHeight=480) at 
Source/tDirectDrawScreen.cpp:55
#6  0x4082d76f in InitApp (hInst=0x40620000, nCmdShow=1) at 
Source/Main.cpp:289
#7  0x4082d8fc in WinMain (hInst=0x40620000, hPrevInst=0x0, 
lpCmdLine=0x403708ad "", nCmdShow=1) at Source/Main.cpp:322
#8  0x4062509c in __wine_exe_main () from 
/home/mattbee/Work/Nemesis/LSNClient.exe
#9  0x400b3799 in start_process () at ../../scheduler/process.c:564
#10 0x400b76c9 in call_on_thread_stack (func=0x400b3558) at 
../../scheduler/sysdeps.c:112
---------------------------------------------------------------------------

Any ideas why this might be happening?

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




More information about the wine-devel mailing list