Outstanding 3.4 bugs?

Andreas Raab andreas.raab at gmx.de
Thu Feb 27 21:44:13 UTC 2003


> How did you debug this? I remember you saying to Ned that his stack
> trace didn't go down far enough to get to the problem..

Well, I recreated the problem, saw that the error you get was a recursive
one, deduced that it must be happening in ContextPart>>printOn: put an
exception handler in there to simply print "<error>" (this might actually be
generally helpful) and then I could see that the problem originated from
Metaclass>>name which apparently tried to concatenate a Dictionary with a
String. Evaluating "thisClass instVarAt: ..." in the debugger (since you
can't inspect it) showed me that the values of every instVar were shifted by
one from what it should be which is the exact effect you see when you
"forget" to reshape a subclass of some other class. From there, you can
start hacking ClassBuilder - I put a halt in there if some class' name
wasn't a stringy object. That showed me the "first place where the problem
occurs" - e.g., the last class after which it gets broken. In this halt you
see that (and which) the meta classes are broken and the stack tells you the
rest of the story.

Cheers,
  - Andreas

> 
> -----Original Message-----
> From: Andreas Raab [mailto:andreas.raab at gmx.de]
> Sent: Thursday, February 27, 2003 4:04 PM
> To: 'Discussing the Squeak Foundation'
> Cc: squeak-dev at lists.squeakfoundation.org
> Subject: RE: Outstanding 3.4 bugs?
> 
> 
> Hi Ned,
> 
> > These bugs (and more, like the much-discussed bug with adding an 
> > instVar to ClassDescription) still exist in 3.4g.
> 
> Here's an update on this problem. I could trace it down to a very
> obscure
> breakage of the superclass/subclass invariant which can only 
> happen when
> you
> recompile any of the essential behaviors (Behavior, ClassDescription,
> Class).
> 
> 



More information about the Squeak-dev mailing list