[squeak-dev] Re: process-faithful debugging?

Bert Freudenberg bert at freudenbergs.de
Fri Jul 17 09:31:11 UTC 2009


On 17.07.2009, at 06:16, Eliot Miranda wrote:

>
>
> On Thu, Jul 16, 2009 at 6:26 PM, Andreas Raab <andreas.raab at gmx.de>  
> wrote:
> Didn't we talk about this earlier?
>
> Yes we had discussed it, but I needed the reminder...
>
> Process>>currentProcess
>  "Answer the currently active process.
>  If the receiver is simulating another process,
>  answer the other process. If not, answer self."
>  ^currentProcess ifNil:[self]
>
> Process>>currentProcess: aProcess
>  "Set the currently active process.
>  Return the previous active process."
>  | prior |
>  prior := currentProcess.
>  currentProcess := aProcess.
>  ^prior
>
> ProcessorScheduler>>activeProcess
>  ^activeProcess currentProcess
>
> ProcessorScheduler>>currentProcess: aProcess
>  "For debugging only.
>   Pretend that aProcess is the activeProcess"
>  ^activeProcess currentProcess: aProcess
>
> and then:
>
> Debugger>>step
>  prior := Processor currentProcess: interruptedProcess.
>  [self doStep] ensure:[Processor currentProcess: prior].
>
> etc.
>
> Yes.  This is OK, but it means the system codes to suit the debugger  
> and that's always felt like the tail wagging the dog to me.
>
> How about creating an anonymous subclass of the process that  
> implements activeProcess

#activeProcess is implemented by ProcessorScheduler not Process. So  
that won't work.

> to raise an exception caught by the debugger that answers the right  
> thing and class (to answer the proper class) and using  
> adoptInstance: (the new guts of changeClassTo:)  for the duration of  
> each step?


Sounds like a trade-off between magic and simplicity.

- Bert -


-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20090717/96da330e/attachment.htm


More information about the Squeak-dev mailing list