[Wine] Re: Page Fault With Freetype calls

Zach Lawson zlawson at slgl.com
Wed Nov 16 08:05:45 CST 2005


Hmmm...

Looks like it's coming from a gdi.getFontDataCall...

0009:Ret  gdi32.GetFontData() retval=0000138e ret=10024af8
0009:Call gdi32.GetFontData 
(000005f4,20747663,00000000,41fd859c,ffffec70) ret=10024af8
0009:Call kernel32.97(40943c00) ret=40915bd1
0009:Call ntdll.RtlEnterCriticalSection(40943c00) ret=40644467
0009:Ret  ntdll.RtlEnterCriticalSection() retval=00000000 ret=40644467
0009:Ret  kernel32.97() retval=406c4100 ret=40915bd1
trace:font:WineEngGetFontData font=0x40551420, table=20747663,  
offset=00000000, buf=0x41fd859c, cbData=ffffec70

Haven't dug much deeper than this yet...

Thanks again for any help you can give,

-Zach

The aforementioned 200 lines before the exception:

0009:Ret  gdi32.GetFontData() retval=0000000c ret=100249d6
0009:Call gdi32.GetFontData(000005f4,322f534f, 
00000000,00000000,00000000) ret=10024a13
0009:Call kernel32.97(40943c00) ret=40915bd1
0009:Call ntdll.RtlEnterCriticalSection(40943c00) ret=40644467
0009:Ret  ntdll.RtlEnterCriticalSection() retval=00000000 ret=40644467
0009:Ret  kernel32.97() retval=406c4100 ret=40915bd1
trace:font:WineEngGetFontData font=0x40551420, table=322f534f,  
offset=00000000, buf=(nil), cbData=0
0009:Call kernel32.98(40943c00) ret=40915ceb
0009:Call ntdll.RtlLeaveCriticalSection(40943c00) ret=406445f6
0009:Ret  ntdll.RtlLeaveCriticalSection() retval=00000000 ret=406445f6
0009:Ret  kernel32.98() retval=00000000 ret=40915ceb
0009:Ret  gdi32.GetFontData() retval=00000056 ret=10024a13
0009:Call gdi32.GetFontData 
(000005f4,70616d63,00000000,00000000,00000000) ret=10024a13
0009:Call kernel32.97(40943c00) ret=40915bd1
0009:Call ntdll.RtlEnterCriticalSection(40943c00) ret=40644467
0009:Ret  ntdll.RtlEnterCriticalSection() retval=00000000 ret=40644467
0009:Ret  kernel32.97() retval=406c4100 ret=40915bd1
trace:font:WineEngGetFontData font=0x40551420, table=70616d63,  
offset=00000000, buf=(nil), cbData=0
0009:Call kernel32.98(40943c00) ret=40915ceb
0009:Call ntdll.RtlLeaveCriticalSection(40943c00) ret=406445f6
0009:Ret  ntdll.RtlLeaveCriticalSection() retval=00000000 ret=406445f6
0009:Ret  kernel32.98() retval=00000000 ret=40915ceb
0009:Ret  gdi32.GetFontData() retval=0000138e ret=10024a13
0009:Call gdi32.GetFontData 
(000005f4,20747663,00000000,00000000,00000000) ret=10024a13
0009:Call kernel32.97(40943c00) ret=40915bd1
0009:Call ntdll.RtlEnterCriticalSection(40943c00) ret=40644467
0009:Ret  ntdll.RtlEnterCriticalSection() retval=00000000 ret=40644467
0009:Ret  kernel32.97() retval=406c4100 ret=40915bd1
trace:font:WineEngGetFontData font=0x40551420, table=20747663,  
offset=00000000, buf=(nil), cbData=0
0009:Call kernel32.98(40943c00) ret=40915ceb
0009:Call ntdll.RtlLeaveCriticalSection(40943c00) ret=406445f6
0009:Ret  ntdll.RtlLeaveCriticalSection() retval=00000000 ret=406445f6
0009:Ret  kernel32.98() retval=00000000 ret=40915ceb
0009:Ret  gdi32.GetFontData() retval=00000630 ret=10024a13
0009:Call gdi32.GetFontData 
(000005f4,6d677066,00000000,00000000,00000000) ret=10024a13
0009:Call kernel32.97(40943c00) ret=40915bd1
0009:Call ntdll.RtlEnterCriticalSection(40943c00) ret=40644467
0009:Ret  ntdll.RtlEnterCriticalSection() retval=00000000 ret=40644467
0009:Ret  kernel32.97() retval=406c4100 ret=40915bd1
trace:font:WineEngGetFontData font=0x40551420, table=6d677066,  
offset=00000000, buf=(nil), cbData=0
0009:Call kernel32.98(40943c00) ret=40915ceb
0009:Call ntdll.RtlLeaveCriticalSection(40943c00) ret=406445f6
0009:Ret  ntdll.RtlLeaveCriticalSection() retval=00000000 ret=406445f6
0009:Ret  kernel32.98() retval=00000000 ret=40915ceb
0009:Ret  gdi32.GetFontData() retval=000005b0 ret=10024a13
0009:Call gdi32.GetFontData 
(000005f4,66796c67,00000000,00000000,00000000) ret=10024a13
0009:Call kernel32.97(40943c00) ret=40915bd1
0009:Call ntdll.RtlEnterCriticalSection(40943c00) ret=40644467
0009:Ret  ntdll.RtlEnterCriticalSection() retval=00000000 ret=40644467
0009:Ret  kernel32.97() retval=406c4100 ret=40915bd1
trace:font:WineEngGetFontData font=0x40551420, table=66796c67,  
offset=00000000, buf=(nil), cbData=0
0009:Call kernel32.98(40943c00) ret=40915ceb
0009:Call ntdll.RtlLeaveCriticalSection(40943c00) ret=406445f6
0009:Ret  ntdll.RtlLeaveCriticalSection() retval=00000000 ret=406445f6
0009:Ret  kernel32.98() retval=00000000 ret=40915ceb
0009:Ret  gdi32.GetFontData() retval=0002cf84 ret=10024a13
0009:Call gdi32.GetFontData 
(000005f4,64616568,00000000,00000000,00000000) ret=10024a13
0009:Call kernel32.97(40943c00) ret=40915bd1
0009:Call ntdll.RtlEnterCriticalSection(40943c00) ret=40644467
0009:Ret  ntdll.RtlEnterCriticalSection() retval=00000000 ret=40644467
0009:Ret  kernel32.97() retval=406c4100 ret=40915bd1
trace:font:WineEngGetFontData font=0x40551420, table=64616568,  
offset=00000000, buf=(nil), cbData=0
0009:Call kernel32.98(40943c00) ret=40915ceb
0009:Call ntdll.RtlLeaveCriticalSection(40943c00) ret=406445f6
0009:Ret  ntdll.RtlLeaveCriticalSection() retval=00000000 ret=406445f6
0009:Ret  kernel32.98() retval=00000000 ret=40915ceb
0009:Ret  gdi32.GetFontData() retval=00000036 ret=10024a13
0009:Call gdi32.GetFontData 
(000005f4,61656868,00000000,00000000,00000000) ret=10024a13
0009:Call kernel32.97(40943c00) ret=40915bd1
0009:Call ntdll.RtlEnterCriticalSection(40943c00) ret=40644467
0009:Ret  ntdll.RtlEnterCriticalSection() retval=00000000 ret=40644467
0009:Ret  kernel32.97() retval=406c4100 ret=40915bd1
trace:font:WineEngGetFontData font=0x40551420, table=61656868,  
offset=00000000, buf=(nil), cbData=0
0009:Call kernel32.98(40943c00) ret=40915ceb
0009:Call ntdll.RtlLeaveCriticalSection(40943c00) ret=406445f6
0009:Ret  ntdll.RtlLeaveCriticalSection() retval=00000000 ret=406445f6
0009:Ret  kernel32.98() retval=00000000 ret=40915ceb
0009:Ret  gdi32.GetFontData() retval=00000024 ret=10024a13
0009:Call gdi32.GetFontData 
(000005f4,78746d68,00000000,00000000,00000000) ret=10024a13
0009:Call kernel32.97(40943c00) ret=40915bd1
0009:Call ntdll.RtlEnterCriticalSection(40943c00) ret=40644467
0009:Ret  ntdll.RtlEnterCriticalSection() retval=00000000 ret=40644467
0009:Ret  kernel32.97() retval=406c4100 ret=40915bd1
trace:font:WineEngGetFontData font=0x40551420, table=78746d68,  
offset=00000000, buf=(nil), cbData=0
0009:Call kernel32.98(40943c00) ret=40915ceb
0009:Call ntdll.RtlLeaveCriticalSection(40943c00) ret=406445f6
0009:Ret  ntdll.RtlLeaveCriticalSection() retval=00000000 ret=406445f6
0009:Ret  kernel32.98() retval=00000000 ret=40915ceb
0009:Ret  gdi32.GetFontData() retval=000014a0 ret=10024a13
0009:Call gdi32.GetFontData(000005f4,61636f6c, 
00000000,00000000,00000000) ret=10024a13
0009:Call kernel32.97(40943c00) ret=40915bd1
0009:Call ntdll.RtlEnterCriticalSection(40943c00) ret=40644467
0009:Ret  ntdll.RtlEnterCriticalSection() retval=00000000 ret=40644467
0009:Ret  kernel32.97() retval=406c4100 ret=40915bd1
trace:font:WineEngGetFontData font=0x40551420, table=61636f6c,  
offset=00000000, buf=(nil), cbData=0
0009:Call kernel32.98(40943c00) ret=40915ceb
0009:Call ntdll.RtlLeaveCriticalSection(40943c00) ret=406445f6
0009:Ret  ntdll.RtlLeaveCriticalSection() retval=00000000 ret=406445f6
0009:Ret  kernel32.98() retval=00000000 ret=40915ceb
0009:Ret  gdi32.GetFontData() retval=000014a4 ret=10024a13
0009:Call gdi32.GetFontData(000005f4,7078616d, 
00000000,00000000,00000000) ret=10024a13
0009:Call kernel32.97(40943c00) ret=40915bd1
0009:Call ntdll.RtlEnterCriticalSection(40943c00) ret=40644467
0009:Ret  ntdll.RtlEnterCriticalSection() retval=00000000 ret=40644467
0009:Ret  kernel32.97() retval=406c4100 ret=40915bd1
trace:font:WineEngGetFontData font=0x40551420, table=7078616d,  
offset=00000000, buf=(nil), cbData=0
0009:Call kernel32.98(40943c00) ret=40915ceb
0009:Call ntdll.RtlLeaveCriticalSection(40943c00) ret=406445f6
0009:Ret  ntdll.RtlLeaveCriticalSection() retval=00000000 ret=406445f6
0009:Ret  kernel32.98() retval=00000000 ret=40915ceb
0009:Ret  gdi32.GetFontData() retval=00000020 ret=10024a13
0009:Call gdi32.GetFontData(000005f4,656d616e, 
00000000,00000000,00000000) ret=10024a13
0009:Call kernel32.97(40943c00) ret=40915bd1
0009:Call ntdll.RtlEnterCriticalSection(40943c00) ret=40644467
0009:Ret  ntdll.RtlEnterCriticalSection() retval=00000000 ret=40644467
0009:Ret  kernel32.97() retval=406c4100 ret=40915bd1
trace:font:WineEngGetFontData font=0x40551420, table=656d616e,  
offset=00000000, buf=(nil), cbData=0
0009:Call kernel32.98(40943c00) ret=40915ceb
0009:Call ntdll.RtlLeaveCriticalSection(40943c00) ret=406445f6
0009:Ret  ntdll.RtlLeaveCriticalSection() retval=00000000 ret=406445f6
0009:Ret  kernel32.98() retval=00000000 ret=40915ceb
0009:Ret  gdi32.GetFontData() retval=00001b0d ret=10024a13
0009:Call gdi32.GetFontData 
(000005f4,74736f70,00000000,00000000,00000000) ret=10024a13
0009:Call kernel32.97(40943c00) ret=40915bd1
0009:Call ntdll.RtlEnterCriticalSection(40943c00) ret=40644467
0009:Ret  ntdll.RtlEnterCriticalSection() retval=00000000 ret=40644467
0009:Ret  kernel32.97() retval=406c4100 ret=40915bd1
trace:font:WineEngGetFontData font=0x40551420, table=74736f70,  
offset=00000000, buf=(nil), cbData=0
0009:Call kernel32.98(40943c00) ret=40915ceb
0009:Call ntdll.RtlLeaveCriticalSection(40943c00) ret=406445f6
0009:Ret  ntdll.RtlLeaveCriticalSection() retval=00000000 ret=406445f6
0009:Ret  kernel32.98() retval=00000000 ret=40915ceb
0009:Ret  gdi32.GetFontData() retval=00003204 ret=10024a13
0009:Call gdi32.GetFontData 
(000005f4,70657270,00000000,00000000,00000000) ret=10024a13
0009:Call kernel32.97(40943c00) ret=40915bd1
0009:Call ntdll.RtlEnterCriticalSection(40943c00) ret=40644467
0009:Ret  ntdll.RtlEnterCriticalSection() retval=00000000 ret=40644467
0009:Ret  kernel32.97() retval=406c4100 ret=40915bd1
trace:font:WineEngGetFontData font=0x40551420, table=70657270,  
offset=00000000, buf=(nil), cbData=0
0009:Call kernel32.98(40943c00) ret=40915ceb
0009:Call ntdll.RtlLeaveCriticalSection(40943c00) ret=406445f6
0009:Ret  ntdll.RtlLeaveCriticalSection() retval=00000000 ret=406445f6
0009:Ret  kernel32.98() retval=00000000 ret=40915ceb
0009:Ret  gdi32.GetFontData() retval=00000afd ret=10024a13
0009:Call gdi32.GetFontData 
(000005f4,61656876,00000000,00000000,00000000) ret=10024a13
0009:Call kernel32.97(40943c00) ret=40915bd1
0009:Call ntdll.RtlEnterCriticalSection(40943c00) ret=40644467
0009:Ret  ntdll.RtlEnterCriticalSection() retval=00000000 ret=40644467
0009:Ret  kernel32.97() retval=406c4100 ret=40915bd1
trace:font:WineEngGetFontData font=0x40551420, table=61656876,  
offset=00000000, buf=(nil), cbData=0
trace:font:WineEngGetFontData Can't find table 76686561.
0009:Call kernel32.98(40943c00) ret=40915ceb
0009:Call ntdll.RtlLeaveCriticalSection(40943c00) ret=406445f6
0009:Ret  ntdll.RtlLeaveCriticalSection() retval=00000000 ret=406445f6
0009:Ret  kernel32.98() retval=00000000 ret=40915ceb
0009:Ret  gdi32.GetFontData() retval=ffffffff ret=10024a13
0009:Call gdi32.GetFontData 
(000005f4,78746d76,00000000,00000000,00000000) ret=10024a13
0009:Call kernel32.97(40943c00) ret=40915bd1
0009:Call ntdll.RtlEnterCriticalSection(40943c00) ret=40644467
0009:Ret  ntdll.RtlEnterCriticalSection() retval=00000000 ret=40644467
0009:Ret  kernel32.97() retval=406c4100 ret=40915bd1
trace:font:WineEngGetFontData font=0x40551420, table=78746d76,  
offset=00000000, buf=(nil), cbData=0
trace:font:WineEngGetFontData Can't find table 766d7478.
0009:Call kernel32.98(40943c00) ret=40915ceb
0009:Call ntdll.RtlLeaveCriticalSection(40943c00) ret=406445f6
0009:Ret  ntdll.RtlLeaveCriticalSection() retval=00000000 ret=406445f6
0009:Ret  kernel32.98() retval=00000000 ret=40915ceb
0009:Ret  gdi32.GetFontData() retval=ffffffff ret=10024a13
0009:Call kernel32.VirtualAlloc(00000000,00039000,00001000,00000004)  
ret=40ac4e3c
0009:Call ntdll.NtAllocateVirtualMemory(ffffffff, 
407de804,00000000,407de81c,00001000,00000004) ret=406500a7
0009:Call ntdll.RtlTryEnterCriticalSection(404b0280) ret=406366a9
0009:Ret  ntdll.RtlTryEnterCriticalSection() retval=00000001  
ret=406366a9
0009:Call ntdll.RtlLeaveCriticalSection(404b0280) ret=4063670f
0009:Ret  ntdll.RtlLeaveCriticalSection() retval=00000000 ret=4063670f
0009:Ret  ntdll.NtAllocateVirtualMemory() retval=00000000 ret=406500a7
0009:Ret  kernel32.VirtualAlloc() retval=41fa0000 ret=40ac4e3c
0009:Call ntdll.RtlMoveMemory(41fa0010,407de970,0000000c) ret=40ac5041
0009:Ret  ntdll.RtlMoveMemory() retval=41fa0010 ret=40ac5041
0009:Call gdi32.GetFontData(000005f4,322f534f,00000000,41fa00ec, 
00037120) ret=10024af8
0009:Call kernel32.97(40943c00) ret=40915bd1
0009:Call ntdll.RtlEnterCriticalSection(40943c00) ret=40644467
0009:Ret  ntdll.RtlEnterCriticalSection() retval=00000000 ret=40644467
0009:Ret  kernel32.97() retval=406c4100 ret=40915bd1
trace:font:WineEngGetFontData font=0x40551420, table=322f534f,  
offset=00000000, buf=0x41fa00ec, cbData=37120
0009:Call kernel32.98(40943c00) ret=40915ceb
0009:Call ntdll.RtlLeaveCriticalSection(40943c00) ret=406445f6
0009:Ret  ntdll.RtlLeaveCriticalSection() retval=00000000 ret=406445f6
0009:Ret  kernel32.98() retval=00000000 ret=40915ceb
0009:Ret  gdi32.GetFontData() retval=00037120 ret=10024af8
0009:Call gdi32.GetFontData(000005f4,70616d63,00000000,41fd720c, 
00000000) ret=10024af8
0009:Call kernel32.97(40943c00) ret=40915bd1
0009:Call ntdll.RtlEnterCriticalSection(40943c00) ret=40644467
0009:Ret  ntdll.RtlEnterCriticalSection() retval=00000000 ret=40644467
0009:Ret  kernel32.97() retval=406c4100 ret=40915bd1
trace:font:WineEngGetFontData font=0x40551420, table=70616d63,  
offset=00000000, buf=0x41fd720c, cbData=0
0009:Call kernel32.98(40943c00) ret=40915ceb
0009:Call ntdll.RtlLeaveCriticalSection(40943c00) ret=406445f6
0009:Ret  ntdll.RtlLeaveCriticalSection() retval=00000000 ret=406445f6
0009:Ret  kernel32.98() retval=00000000 ret=40915ceb
0009:Ret  gdi32.GetFontData() retval=0000138e ret=10024af8
0009:Call gdi32.GetFontData 
(000005f4,20747663,00000000,41fd859c,ffffec70) ret=10024af8
0009:Call kernel32.97(40943c00) ret=40915bd1
0009:Call ntdll.RtlEnterCriticalSection(40943c00) ret=40644467
0009:Ret  ntdll.RtlEnterCriticalSection() retval=00000000 ret=40644467
0009:Ret  kernel32.97() retval=406c4100 ret=40915bd1
trace:font:WineEngGetFontData font=0x40551420, table=20747663,  
offset=00000000, buf=0x41fd859c, cbData=ffffec70


On Nov 15, 2005, at 2:03 PM, Rein Klazes wrote:

> On Mon, 14 Nov 2005 14:56:52 -0500, in gmane.comp.emulators.wine.user
> you wrote:
>
> at the end of  your log:
>> trace:font:WineEngGetFontData font=0x405757d8, table=70616d63,  
>> offset=00000000, buf=0x4374720c, cbData=0
>> trace:font:WineEngGetFontData font=0x405757d8, table=20747663,  
>> offset=00000000, buf=0x4374859c, cbData=ffffec70
>
> cbData 0xffffec70looks wrong, it is supposed to be the length of buf (
> 0x4374859c)
>
>> First chance exception: page fault on write access to 0x437f9000  
>> in 32-bit
>
> we get an fault accessing at an offset of 0xb0a64 of buf.
>
> The question is where this 0xffffec70 comes from. If you run with
> WINEDEBUG=+relay,+font can you spot this value anywhere? At least post
> 200 lines of this log directly preceding this line.
>
> Rein.
>




More information about the wine-users mailing list