Hi All,
I'm seeing an occasional crash in Cog when stepping the simulator when working on Spur. The crash comes about when the system executes primitiveStoreStackp (primitive 76) as part of ContextPart>>push:, and a code compaction occurs within the primitive. The crash.dmp file looks like the following (eliding for brevity):
Bus error Sat Sep 21 06:03:12 2013 ... C stack backtrace: 0 Squeak 0x000700a1 reportStackState + 145 1 Squeak 0x00070a32 sigsegv + 306 2 libSystem.B.dylib 0x99fa105b _sigtramp + 43 3 ??? 0xffffffff 0x0 + 4294967295 4 Squeak 0x00101d9a interpret + 2970 ... Smalltalk stack dump: 0xbffe2ae8 M MethodContext(ContextPart)>push: 0x1d95abac: a(n) MethodContext 0xbffe2b0c M MethodContext(ContextPart)>return:from: 0x1d95ab50: a(n) MethodContext 0xbffe2b34 I MethodContext(ContextPart)>methodReturnReceiver 0x1d95ab50: a(n) MethodContext 0xbffe2b5c M MethodContext(InstructionStream)>interpretNextInstructionFor: 0x1d95ab50: a(n) MethodContext 0xbffe2b78 M MethodContext(ContextPart)>step 0x1d95ab50: a(n) MethodContext ... Most recent primitives ... primitiveWait at:put: signal @ basicNew shallowCopy findSubstring:in:startingAt:matchTable: indexOfAscii:inString:startingAt: perform: objectAt: at: findNextUnwindContextUpTo: at:put: at:put: stackp: **CompactCode**
But this isn't telling me enough.
Firstly I've just committed changes to http://www.squeakvm.org/svn/squeak/branches/Cog/platforms/Mac%20OS/vm/sqMacM... http://www.squeakvm.org/svn/squeak/branches/Cog/platforms/unix/vm/sqUnixMain... also print the register state when the VM segfaults or gets sent SGUSR1 etc. I can't test on FreeBSD. If anyone builds with these changes on Free BSD can they please let me know if they work or not?
Secondly perhaps someone has a reproducible case coming from running e.g. ContextPart>>runAtEachStep: type code? If so, please can I have a copy?
Lastly, if anyone has a crash that matches the above, but with the new crash dump info, I'd love to see the crash.dmp file.
Thanks, Eliot
vm-dev@lists.squeakfoundation.org