[Vm-dev] Reproducible way to crash Cog ( [Lsehub-staff] Strange behavior )

Eliot Miranda eliot.miranda at gmail.com
Wed Dec 8 21:43:30 UTC 2010


Hi Igor,

    thanks for this.  Note to self: this is in ~/Squeak/PharoCore-1.2-12261

BTW, you can try and build the debug VM and use that.  It has asserts
built-in that may find the problem earlier.  The mvm script makes a
Debug.app by default.

HTH
Eliot

On Wed, Dec 8, 2010 at 1:28 PM, Igor Stasenko <siguctua at gmail.com> wrote:

>
> Hello, Eliot
>
> today i tried to help and see what is strange (see original message
> below).. and followed the instructions, but instead of 'strange' i got
> VM crash. ;)
>
> I tried multiple Mac Cog VMs (one built by me, another, built by you),
> and both crashing during GC.
>
> To reproduce, take the latest pharo-core image
> (http://www.pharo-project.org/pharo-download/unstable-core)
> Then evaluate following:
>
> Gofer new
> squeaksource: 'Seed';
> package: 'Seed-HaselBuilder';
> load.
>
>
> Then evaluate
>   HaselKernelBuilder new script.
>
> if next to that you do (if it not crashed already)
>
> Smalltalk garbageCollect.
>
>
> and VM will crash guaranteed (or become unresponsive).
>
> I didn't investigated deeply, but i found that culprit is most probably in
> HaselKernelBuilder>>copyClass:
>
>
>
> @ Benjamin. You have a mistake in your code (and that i think why it
> behaves 'strange')
> you setting the class of class to be the instance of 'metacopy'
>
> so, you have
>
> class copy -> metaclass copy basicNew -> metaclass copy
>
> ('->' here means 'instance of' )
>
> while it should be
>
> class copy -> metaclass copy
>
> So
>
> cpy primitiveChangeClassTo: metaCopy basicNew.
>
> actually should be
>
> cpy primitiveChangeClassTo: metaCopy.
>
>
> ---------- Forwarded message ----------
> From: Benjamin <benjamin.vanryseghem at gmail.com>
> Date: 8 December 2010 17:15
> Subject: [Lsehub-staff] Strange behavior
> To: RMoD private list <lsehub-staff at lists.gforge.inria.fr>
>
>
> Hello guys,
>
> I've a strange error when I'm trying to trace some objects, and even
> after spending the whole day on it, I still do not understand why, so
> if you have any idea, you're welcome :)
>
>
> Source :
>
> Gofer new
> squeaksource: 'Seed';
> package: 'Seed-HaselBuilder';
> load.
>
>
> Method :
>
> Then open a Transcript and evaluate
>
> HaselKernelBuilder new script.
> tracedObjects := Dictionary new. objects := Dictionary new. object :=
> Object. HaselImageBuilder new trace: object in: objects from: nil
> tracedObjects: tracedObjects.
>
>
> Thank you in advance,
>
>
> Ben
>
>
>
> --
> Best regards,
> Igor Stasenko AKA sig.
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/vm-dev/attachments/20101208/5aca9dfd/attachment.htm


More information about the Vm-dev mailing list