Cog code compaction crash when stepping in the debugger

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

Cog code compaction crash when stepping in the debugger

Eliot Miranda-2
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/sqMacMain.c and http://www.squeakvm.org/svn/squeak/branches/Cog/platforms/unix/vm/sqUnixMain.c to 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