http://bugs.winehq.org/show_bug.cgi?id=10503
--- Comment #19 from Michael Mc Donnell michael@mcdonnell.dk 2008-07-26 14:09:09 --- (In reply to comment #18)
(In reply to comment #17)
(In reply to comment #16)
Hmmm, last error message before the segfault for me is fixme:font:CreateScalableFontResourceA (0,"arialn.fot","arialn.ttf","Z:\media\ExtHD\Sid Meier's Alpha Centauri"): stub Segmentation fault (core dumped)
version 9.55 of wine
Did you install this in wine or are you running from a windows install.
It doesn't matter. It also crashes if you install it from scratch in Linux. It's an old bug in the the winex11 code (I think). The code fails in the function X11DRV_SelectFont in xfont.c. I suspect it's because it tries to access a font it hasn't loaded, but I'm not sure of it. It definitely has something to do with the font code because it doesn't segfault if you comment out this code.
It might be related to CreateScalableFont because the scalable fonts aren't created.
I'm a really newbie wine hacker, so could anyone point me to where the problem might be? The following lines are from the trace with tid, seh and relay:
***SNIP*** 0009:Call gdi32.GetStockObject(0000000d) ret=006308d7 0009:Ret gdi32.GetStockObject() retval=0000007c ret=006308d7 0009:Call gdi32.SelectObject(00000484,0000007c) ret=006308e1 0009:Call winex11.drv.GetDeviceCaps(00151b00,00000022) ret=7ec44799 0009:Ret winex11.drv.GetDeviceCaps() retval=000079d7 ret=7ec44799 0009:Call winex11.drv.GetDeviceCaps(00151b00,00000022) ret=7ec44799 0009:Ret winex11.drv.GetDeviceCaps() retval=000079d7 ret=7ec44799 0009:Call winex11.drv.SelectFont(00151b00,0000007c,00134ab0) ret=7ec55dc8 0009:Call gdi32.GetObjectW(0000007c,0000005c,00334d04) ret=7e6766b5 0009:Ret gdi32.GetObjectW() retval=0000005c ret=7e6766b5 0009:Call gdi32.GetObjectW(0000007c,0000005c,00334b88) ret=7e67c5aa 0009:Ret gdi32.GetObjectW() retval=0000005c ret=7e67c5aa 0009:Call gdi32.LPtoDP(00000484,00334af8,00000002) ret=7e64b96d 0009:Ret gdi32.LPtoDP() retval=00000001 ret=7e64b96d 0009:Call gdi32.LPtoDP(00000484,00334af8,00000002) ret=7e64b91d 0009:Ret gdi32.LPtoDP() retval=00000001 ret=7e64b91d 0009:Ret winex11.drv.SelectFont() retval=00000000 ret=7ec55dc8 0009:Ret gdi32.SelectObject() retval=0000955c ret=006308e1 0009:warn:seh:setup_exception exception outside of stack limits in thread 0009 eip 0063600d esp 00017aab stack 0x231000-0x340000 ***SNIP***
Which call causes the exception? Is it the last SelectObject?