[Seaside] Debugging -> Hanging

Colin Putney cputney at wiresong.ca
Thu Feb 22 14:05:07 UTC 2007


On Feb 20, 2007, at 6:35 PM, Blake wrote:


> Hey, Seasiders:
>
> 	I'm doing some stuff in Seaside and I think I have my set up wrong.
>
> 	If I put in a halt or click debug, I get a debug window inside the  
> Squeak environment (not the web browser) and often--I'm still  
> trying to track down the exact circumstances, but it seems to be  
> related to trying to trace--Squeak's windows become unresponsive.
>
> 	I can right-click to close it (and it will ask me if I really want  
> to quit without saving, which I don't but...) and I managed to get  
> another debug window opened once by paging through my stuff, but I  
> can't activate any of the internal windows.
>

Hi Blake,

I've run into this problem too. I haven't investigated too  
thoroughly, but I think the stack manipulation done by Seaside  
interacts with that done by the debugger to produce an undesirable  
result. What happens is this : The first error opens the debugger as  
usual. Then, as you're stepping through the code, it hits another  
error. The exception gets caught by Seaside's error handlers, which  
writes a stack trace, then invokes a continuation to return the stack  
trace to the browser.

Here's where the probem comes in: invoking a continuation involves  
destroying the current stack. Now in theory this should work just  
fine, as the debugger is running in a different process than the  
process being debugged. But somehow it's the stack belonging to the  
UI process that gets destroyed, leaving the UI unresponsive.

Fortunately, there's an easy way to break out of this situation: just  
press Cmd-., or whatever your interrupt key is. That will kick start  
the UI process. In the end it's a bit annoying, but not a disaster.

Colin




More information about the Seaside mailing list