Help! Squeak crashes during updates

Danny Sharpe dsharpe at westga.edu
Mon Dec 20 14:06:13 UTC 1999


Jan Bottorff wrote:
> 
> The FP tag word has a 2-bit field for each FP/MMX register. I believe the
> MSVC debugger will show the FP tag register if you open the register
> window. A value of FFFF means the FP registers are empty, 0000 means all
> full, and MAY indicate a missing EMMS instruction after MMX code (a MMX
> instruction set's the tag register to 0000).
> 
> Trapping in the debugger at the failure will be required first.

Okay, I ran it again under MS Visual Studio debugger, tried to enter Play
With Me 7, and as usual it died on the instruction indicated below:

    01508980   push        ebp
    01508981   mov         ebp,esp
    01508983   and         esp,0F8h
    01508986   sub         esp,20h
    01508989   mov         ecx,dword ptr [ebp+8]
    0150898C   mov         eax,dword ptr [ebp+0Ch]
    0150898F   fld         dword ptr [ecx+0Ch]
    01508992   fstp        qword ptr [esp+10h]
    01508996   fld         dword ptr [ecx+10h]
    01508999   fstp        qword ptr [esp+8]
    0150899D   fld         dword ptr [ecx+14h]
--> 015089A0   fstp        qword ptr [esp+18h]
    015089A4   fld         dword ptr [eax+4]
    015089A7   fmul        qword ptr [esp+8]
    015089AB   fld         dword ptr [eax]
    015089AD   fmul        qword ptr [esp+10h]
    015089B1   faddp       st(1),st

Here are the register contents:

    EAX = 02144794 EBX = 0000002A ECX = 021901C4 EDX = 00000010
    ESI = 021901C4 EDI = 02144794 EIP = 015089A0 ESP = 0068FB00
    EBP = 0068FB20 EFL = 00010206 CS = 0137 DS = 013F ES = 013F SS = 013F
    FS = 47AF GS = 0000 OV=0 UP=0 EI=1 PL=0 ZR=0 AC=0 PE=1 CY=0

    0068FB18 = BFD6E05BE0000000

    ST0 = +0.00000000000000000e+0000 ST1 = +0.00000000000000000e+0000
    ST2 = +0.00000000000000000e+0000 ST3 = +0.00000000000000000e+0000
    ST4 = +0.00000000000000000e+0000 ST5 = +6.30592279601072110e-0002
    ST6 = -3.57443779706954956e-0001 ST7 = +3.23359996080398560e-0001
    CTRL = 1270 STAT = B9A2 TAGS = 3FFF EIP = 0150899D CS = 0137 DS = 013F
    EDO = 021901D8

> >> You can probably make the MSVC debugger trap the exception,
> >> you just have to add an exception code 10H to the list of
> >> known exceptions and tell it to always trap it. Actually,
> >> exceptions can have just about ANY number as software can
> >> call RaiseException with any value.

I tried it again with 00000010 added to the list of exceptions and with Stop
Always selected, and got the same results.

----------------------------+-------------------------------------------------
Danny Sharpe                |   When I walked into class the other day, the
Department of Computing     |   following notice was posted on the board:
State Univ. of West Georgia | 
Carrollton, GA 30118        |             Y2K Damage Assessment
Office: (770) 836-6491      |                    Meeting
Fax: (770) 836-4695         |                January 4, 1900





More information about the Squeak-dev mailing list