[squeak-dev] [ANN] CorruptVM preview

Igor Stasenko siguctua at gmail.com
Tue Jul 1 22:33:35 UTC 2008


2008/7/1 Eliot Miranda <eliot.miranda at gmail.com>:
> Hi Igor,
>     this looks cool.  It is related to David Ungar's Klein which was an
> attempt at a self-hosted Self system, and to Exupery and Typed Smalltalk,
> and Ian's Cola.  Whenever I've thought about this style VM I've always been
> put off by a bug issue.  How are you going to deal with hard crashes?
> One needs some form of symbolic debugging at the machine code level.  If one
> is debugging the Squeak VM (or any other Smalltalk VM I've worked on) one
> can compile a version with debug symbols, use the platform's debugger (e.g.
> gdb) and write debugging functions in C to be called from that debugger.
> If one has a self-hosted Smalltalk system with no symbolic information that
> can be read by a platform's debugger because the system, being Smalltalk,
> has is own fully reflective self-description, then it seems to me one really
> is fishing about in a vast hex dump of the entire system, and that doesn't
> seem workable.  Note that in the presence of a hard crash one doesnt have
> the system to debug itselr because it has just crashed.


I have some thoughts about using properly set exception handling mechanism.
In Windows its a Structured Exception Handling (SEH) , provided by OS,
in unixes there is need to set up a signal handlers.
So, if properly set up, it is possible to debug most of errors without
using external debugger process, and you don't have to generate any
symbolic info for them.
There are vast possible options and solutions. As Ralph mentioned, it
can keep 2 object memories - one for running image, second for
controlling it.


> So are you going to export symbolic information that a platform debugger can
> consume (and if so, how?) or are you going to do something else (e.g.
> mirrors)?
>

Good question, i need to think about it. I don't think it would be
easy to bind such info with platform debugger (because they all are
C-centric and its unlikely that they will be able to find any info in
freely movable code ;) ), what i think is more realistic, that we can
run an image containing debugger, and provide enough interface in
running image, so debugger can extract all required info from process
being debugged.

-- 
Best regards,
Igor Stasenko AKA sig.



More information about the Squeak-dev mailing list