WOW. Sean that is super cool. I have to admit I never thought you were gonna be able to di it. This is awesome and I've been there (but never took the time to solve it).
Please, do a blog post! On Sat, Sep 10, 2011 at 12:20 AM, Sean P. DeNigris <[email protected]>wrote: > Huge thanks to 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... > > Cheers, > Sean > > -- > View this message in context: > http://forum.world.st/Oops-I-put-a-halt-in-a-startup-method-tp3800163p3802931.html > Sent from the Pharo Smalltalk mailing list archive at Nabble.com. > > -- Mariano http://marianopeck.wordpress.com
