Hi,
I've been chasing down a strange bug these past few days: http://bugs.squeak.org/view.php?id=7569
The executive summary is this: when viewing a method in the debugger that refers to an instvar deleted after the Debugger instantiated, the CodePane shows the correct source for a fraction of a second, and then goes blank.
What I'd expected to see was the source of the method rendered as per usual, and the reference to the missing instvar coloured red, to indicate a problem. (Just like what you'd see if you opened up a Browser on the method.)
The CodePane goes blank because the Debugger's contents instvar is nilled out.
CodeHolder>>setContentsToForceRefresh nils the instvar because CodeHolder>>didCodeChangeElsewhere returns true.
That method returns true because the Debugger's currentCompiledMethod instvar and the compiled method according to "aClass compiledMethodAt: aSelector" aren't the same object.
And now I'm a bit stuck. I know the behaviour I'd expect, I know why the bug's happening, but how do I fix it? Does CodeHolder (or Debugger) need a better way of knowing whether the viewed method's changed? (For instance, comparing the two CompiledMethods' asCommaString shows identical contents.)
frank