[Vm-dev] Re: [Pharo-project] [squeak-dev] Re: new Cog VMs

Eliot Miranda eliot.miranda at gmail.com
Tue Jan 11 17:15:08 UTC 2011


On Mon, Jan 10, 2011 at 11:31 PM, Andres Valloud <
avalloud at smalltalk.comcastbiz.net> wrote:

> Indeed, quite right.  I happened to add a flag to turn off the heartbeat
>> so I could debug the crash Matthew was seeing in starting up
>> Squeak4.2-10856-beta.image (since single-stepping through machine code
>> always gets interrupted by the heartbeat, it being an interval timer)
>> and lo and behold the bug went away.  This is very worrying because it
>> appears to imply that there's a serious bug in the linux kernel/gcc
>> since delivering a software interrupt shouldn't corrupt registers, but
>> it clearly does.  I'll try and pass it by someone who's an expert in
>> this area.
>>
>
> Or the signal handler functions do not comply with the relevant
> specifications, e.g.: signal handlers that do not preserve the value of
> errno, signal handlers that use a function not in the list of approved safe
> functions you can call from a signal handler as per the Single Unix
> Specification, etc...
>

Good point.  The signal handler essentially calls gettimeofday (not on the
approved list but time is) and sets a couple of variables (current 64-bit
microsecond time, stackLimit).  But it does not preserve errno.  I don't
want to avoid calling gettimeofday and can see no harm in it; it's
equivalent internally to time providing it doesn't use its TIMEZONE arg
(which it doesn't).  But the signal handler /doesn't/ preserve errno and
doing so is a very good idea and easy to do.  Thanks.


> Andres.
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/vm-dev/attachments/20110111/2fa6634b/attachment.htm


More information about the Vm-dev mailing list