doOnlyOnce is just the kind of magic I was looking for. With that and Bob's tip to look in the debug log I was able to corner the problem and fix it.
Thanks.
At 06:19 PM 12/27/01 -0500, Doug Way wrote:
In this situation, I usually try the #doOnlyOnce trick with a halt.
Use this code instead where you were trying to put the halt (which brought up the emergency evaluator):
self doOnlyOnce: [self halt].
This will just do the halt the first time, and then it can proceed through successfully the following times to open the debugger, etc. See ProtoObject>>doOnlyOnce: for more details on how to "re-arm" the doOnlyOnce mechanism.
Actually, this reminds me that someone posted an improvement awhile back to reimplement #doOnlyOnce as a method on BlockContext, but I don't think it had the right subject header to get harvested. I'll dig that up and repost it.
- Doug Way dway@riskmetrics.com