[Vm-dev] when the vm crashes...

Eliot Miranda eliot.miranda at gmail.com
Fri Mar 28 17:40:48 UTC 2014


On Fri, Mar 28, 2014 at 8:17 AM, Bob Arning <arning315 at comcast.net> wrote:

>
>  Eliot,
>
> I figured out where the "console" ends up and you are right - is was last
> object overwritten. File attached if it's of any use. My testing has
> proceeded to the point that repeated calls to "SqueakSSL google: 'squeak'"
> work fine, but calls to a very similar method connecting to a different
> host will crash the vm after a few iterations.
>

At this point I would switch to gdb, set a breakpoint in error, run the
reproducible case, then use

call printOop(objectBefore(freeStart))

to find out which object was overwritten.  That may be a good enough clue
to find out where the overwriting is occurring.  You can try

call longPrintOop(objectBefore(freeStart))

which may give you more info.


> Cheers,
> Bob
>
>
>  On 3/27/14 1:03 PM, Eliot Miranda wrote:
>
>
>
> Hi Bob,
>
>
> On Thu, Mar 27, 2014 at 4:33 AM, Bob Arning <arning315 at comcast.net> wrote:
>
>>
>>  Is there enough information in the attached file to point to a possible
>> cause?
>>
>
>  Yes.  But there should hopefully be the output of error on the console
> and that would disambiguate between the two possible causes.  This is the
> stack:
>
>  2   libsystem_c.dylib             0x9b609bdd abort + 167
> 3   org.squeak.SqueakAllInOne45   0x000703be error + 94
> 4   org.squeak.SqueakAllInOne45   0x000d1c4f
> eeInstantiateSmallClasssizeInBytes + 95
> 5   org.squeak.SqueakAllInOne45   0x000d31a0
> createClosureNumArgsnumCopiedstartpc + 80
> 6   org.squeak.SqueakAllInOne45   0x000c6e69 ceClosureCopyDescriptor + 41
>
> There are two possible errors in eeInstantiateSmallClasssizeInBytes
> error("last object overwritten");
>  error("out of memory");
>
>
>  The first means that something wrote past the end of an object and this
> was detected when a new object was allocated, seeing that freeSpace did not
> contain the pattern expected.  This e.g. happens when passing buffer
> objects to foreign code which writes beyond the object.
>
>  The second usually means infinite recursion.  Looking at the memory map
> at the end of the error report I think that the error is last object
> overwritten.
>
>
>> Cheers,
>> Bob
>>
>>
>
>
>  --
> best,
> Eliot
>
>
>
>


-- 
best,
Eliot
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/vm-dev/attachments/20140328/27c67feb/attachment.htm


More information about the Vm-dev mailing list