On Sat, 25 Nov 2000 22:49:52 +0100 Karl Ramberg karl.ramberg@chello.se wrote:
After using the excellent ProcessBrowser for a while I miss a similar tool to kill off/ debug/ inspect instances. I keep getting my images messed up with lots of SystemWindows etc. hanging around for unknown reasons.
Hi Karl,
Some parts of what you want may already be in the image, but other parts need some clarification.
- Inspecting instances is fairly easy - the browser has items in the method list menu (under 'more...') to inspect one instance, inspect all instances or inspect subinstances. Also you can always do "Blah allInstances explore".
- Debugging instances - I guess you mean here the answer to "Why is this thing still hanging around?". There is a tool for getting this info: "PointerFinder on: FreeCell someInstance" tells me why a FreeCell instance is in my image.
- Killing off instances - this gets a bit trickier since the technique for killing an instance may be quite specific to the particular reason the instance is still alive. Shotgun approaches like "bogusWindow become: String new" may well get rid of the bogus window, but will leave a pointer to an empty string in some place that may not be real happy with it. It would be relatively easy to recognize a few of the common cases and design appropriate killers for these, but there are endless ways that some reference could exist and cleanly handling all of these might be quite difficult.
I know we have tried to work through some of these in the past with mixed success. If you wanted to let me look at one of these images, I might be able to describe better the steps involved in finding and deleting the specific problems you are having. If you'd like to try this, just put the image somewhere and send me the URL.
Cheers, Bob
Bob Arning wrote:
- Inspecting instances is fairly easy - the browser has items in the method list menu (under 'more...') to inspect one instance, inspect all instances or inspect subinstances. Also you can always do "Blah allInstances explore".
This I can.
- Debugging instances - I guess you mean here the answer to "Why is this thing still hanging around?". There is a tool for getting this info: "PointerFinder on: FreeCell someInstance" tells me why a FreeCell instance is in my image.
This I can too, but don't really understand. I have a hard time understanding the hiearchy and what the different things meen.
- Killing off instances - this gets a bit trickier since the technique for killing an instance may be quite specific to the particular reason the instance is still alive. Shotgun approaches like "bogusWindow become: String new" may well get rid of the bogus window, but will leave a pointer to an empty string in some place that may not be real happy with it. It would be relatively easy to recognize a few of the common cases and design appropriate killers for these, but there are endless ways that some reference could exist and cleanly handling all of these might be quite difficult.
I like the InstanceBrowser to be Doomlike, you are handed a bunch of weapons and then you set of killing :-) Now seriously, way to visualize this would be nice. I find it hard to trace back to what causes the problems, like if there one window reffering to the rest etc.
I know we have tried to work through some of these in the past with mixed success. If you wanted to let me look at one of these images, I might be able to describe better the steps involved in finding and deleting the specific problems you are having. If you'd like to try this, just put the image somewhere and send me the URL.
Well, the image in question is 49 megs and my ISP only gives me 20. I'll probably file out my changesets and start off to detroy a new fresh image :-) Karl
Cheers, Bob
squeak-dev@lists.squeakfoundation.org