On Sun 28 Dec, William O. Dargel wrote:
Leandro Caniglia wrote:
Could someone try to reproduce the VM crash I'm experiencing by repeating the steps bellow? Thank you.
- Open a workspace and evaluate: " self halt error: 'An error
message...' " 2. When the 'Halt encountered' window pops up, select debug. 3. From the debbuger menu, select 'step' (stepping the #halt) 4. Then select 'step' one more time (trying to step the #error:). 5. Wait to see if the VM crashes...
I'm using Squeak 1.23 on NT 4.0
Happens on my Acorn as well. Some more details:- if you proceed at 2. , all is well. if you debug at 2. and then step over the halt but proceed from there, all is well if you you debug, step, then send the error: and proceed from the first message there in, all is well. if you go the same route but keep stepping, the system dies when stepping over the DebuggerView>openContext:label:contents: message. if you send this message instead of stepping over it, you can eventually get all the way down to ControlManager>scheduleActiveNoTerminate: and thence to scheduled:from: where stepping over 'self activeController: aController' crashes you .. This tallies reasonably well with observed behaviour when trying some of the earlier routes, since the debugger deEmphasises just before the crash. Since William sees an apparent failure on prim 88 (suspend) and I get to where a resume is sent, I have some suspicions about some sort of clash between suspend and resume when the process involved has been molested by the debugger.
That's all I have time to spend digging for now, but hopefully it might help someone.
tim
Tim Rowledge wrote...
Since William sees an apparent failure on prim 88 (suspend) and I get to where a resume is sent, I have some suspicions about some sort of clash between suspend and resume when the process involved has been molested by the debugger.
The Context stepping mechanism in Squeak was never designed (we're talking 1981 here) to negotiate process switches (which any window creation entails) properly. It checks for and handles only the special case of "halt". If anyone out there wants to submit a fix for this, we'll gladly incorporate it in the next release. Otherwise, we'll add it to the list of desirable future enhancements, and I'll try to put in a test that will cause a more graceful and less catastrophic failure.
- Dan
squeak-dev@lists.squeakfoundation.org