[Vm-beginners] Re: Fwd: Oops - I put a halt in a startup method

David T. Lewis lewis at mail.msen.com
Sat Sep 10 12:40:44 UTC 2011


On Fri, Sep 09, 2011 at 03:17:39PM -0700, Sean P. DeNigris wrote:
> Thanks Igor and Mariano. I recovered the image. Just in case anyone ever has
> a similar problem, the solution was:
> 
> 1. Test for selector in CoInterpreter>>commonSend
>        ...
>        (messageSelector = #halt) ifFalse: [ "the conditional was added"
>        self internalFindNewMethod.
>        self internalExecuteNewMethod  ].
> 
>        self fetchNextBytecode.
> 
> 2. Manually edit the condition in gcc3x-cointerp.c:
>        char* realSelector = GIV(messageSelector) + BaseHeaderSize;
>        if (strncmp(realSelector, "halt", 4) == 0)
>               puts("Skipping halt...");
>        else { ...
> 
> Although I lost the better part of a day, it's a very powerful feeling to
> start building basic VM skills and know that errors that used to be magical
> and fatal can now be resolved...

Nice job Sean! Not a bad day's work for a "VM beginner" :-)

Dave



More information about the VM-beginners mailing list