[Vm-dev] new Cog VMs
Levente Uzonyi
leves at elte.hu
Fri Dec 31 19:58:18 UTC 2010
On Thu, 30 Dec 2010, Eliot Miranda wrote:
(pine can't quote your mail, sorry)
Thanks for the update, the numbers are impressive. I found an issue which
is easily reproducible on windows. Just evaluate [Smalltalk
garbageCollect] and the VM will crash. Since the crash is during GC the VM
will also crash during the log writing, probably because the stack is
corrupted. Here's the relevant part of crash.dmp:
Fri Dec 31 20:46:37 2010
Exception code: C0000005
Exception addr: 00407880
Access violation (read access) at B4650090
EAX:B4650090 EBX:B4650090 ECX:00000000 EDX:00000090
ESI:100353D7 EDI:00000000 EBP:008FDE48 ESP:008FDE1C
EIP:00407880 EFL:00010246
FP Control: FFFF027F
FP Status: FFFF4022
FP Tag: FFFFFFFF
Crashed in the VM thread
Stack backtrace:
[00407880] _remap + 8 in Croquet.exe
[004280F9] _mapForperformUntilarg + 88 in Croquet.exe
[004339F0] _mapObjectReferencesInMachineCode + 109 in Croquet.exe
[00407A35] _mapPointersInObjectsFromto + 420 in Croquet.exe
[00408CD1] _incCompBody + 261 in Croquet.exe
[0041A922] _fullGC + 686 in Croquet.exe
[00426584] _primitiveFullGC + 65 in Croquet.exe
[0041E5A9] _interpret + 513 in Croquet.exe
[00423147] _enterSmalltalkExecutiveImplementation + 97 in
Croquet.exe
[00423625] _initStackPagesAndInterpret + 517 in Croquet.exe
[0043D1F5] _sqMain + 610 in Croquet.exe
[0043D503] _WinMain at 16 + 170 in Croquet.exe
[00517C18] _main + 264 in Croquet.exe
[0040124B] ___mingw_CRTStartup + 251 in Croquet.exe
[004012B8] _WinMainCRTStartup + 24 in Croquet.exe
[768DD0E9] AcquireSRWLockExclusive + 18 in kernel32.dll
[77BE19BB] RtlInitializeNtUserPfn + 99 in ntdll.dll
[77BE198E] RtlInitializeNtUserPfn + 54 in ntdll.dll
...
VM Version: Teleplace VM 1.0.15 (release) from Dec 30 2010
Compiler: gcc 3.4.4 (cygming special, gdc 0.12, using dmd 0.125)
Interpreter Build: CoInterpreter VMMaker-oscog.40 uuid:
637db40c-33c6-4263-816e-1b8cc19e3c99 Dec 30 2010
Cogit Build: StackToRegisterMappingCogit VMMaker-oscog.40 uuid:
637db40c-33c6-4263-816e-1b8cc19e3c99 Dec 30 2010
Current byte code: 16
Primitive index: 0
Another way to reliably crash the VM is to open a file list and wait a few
seconds. I'm not sure if it's related to GC or not, but the smalltalk
stack trace is incomplete, just like in the previous case. In this case
the dump is:
Exception code: C0000005
Exception addr: 00433864
Access violation (read access) at 1D1B6659
EAX:0000003B EBX:FFFF2308 ECX:1D1B6654 EDX:1D1B668F
ESI:00549E28 EDI:004337FB EBP:008FDFB8 ESP:008FDFB0
EIP:00433864 EFL:00010202
FP Control: FFFF027F
FP Status: FFFF4022
FP Tag: FFFFFFFF
Crashed in the VM thread
Stack backtrace:
[00433864] _relocateIfCallOrMethodReferencemcpcdelta + 105 in
Croquet.exe
[004280F9] _mapForperformUntilarg + 88 in Croquet.exe
[004334CA] _compactCogCompiledCode + 914 in Croquet.exe
[00402BFE] _commenceCogCompiledCodeCompaction + 146 in Croquet.exe
[0041B3E2] _checkForEventsMayContextSwitch + 742 in Croquet.exe
[0041B4F1] _handleStackOverflowOrEventAllowContextSwitch + 32 in
Croquet.exe
[0041C3F8] _activateNewMethod + 607 in Croquet.exe
[0041D16B] _activateInterpreterMethodFromMachineCode + 194 in
Croquet.exe
[1002005C] ceSend0Args + 44 in CogCode
[00423625] _initStackPagesAndInterpret + 517 in Croquet.exe
[0043D1F5] _sqMain + 610 in Croquet.exe
[0043D503] _WinMain at 16 + 170 in Croquet.exe
[00517C18] _main + 264 in Croquet.exe
[0040124B] ___mingw_CRTStartup + 251 in Croquet.exe
[004012B8] _WinMainCRTStartup + 24 in Croquet.exe
[768DD0E9] AcquireSRWLockExclusive + 18 in kernel32.dll
[77BE19BB] RtlInitializeNtUserPfn + 99 in ntdll.dll
[77BE198E] RtlInitializeNtUserPfn + 54 in ntdll.dll
Levente
More information about the Vm-dev
mailing list