Software Visualization....

Mark Wai mwai at
Thu Oct 22 13:42:50 UTC 1998

At 11:31 PM 10/21/98 -0500, Dwight wrote:

>Can you examine each instance at any point? Can you "sit" on an instance
>(or instances) and watch it (them) change as the application executes? 

The Object Visualizer can show all instances of the selected class and any
messages that send to it.  Each instance is represented by an icon.  The
icon can be set to become an animated icon such that it shows message path
and change its color (e.g. to red means very busy object).

>Can you see why the messages were sent and what their content was
>(listen in on the conversation)?

No.  (as far as I know)

>Can you watch the activity as it is happening?
Yes, as described in the first reply (through animated icon)

> Can you stop and see what
>is causing the activity at any particular point? [1]

Not from the Object Visualizer.

>Can you also go the other way - can you select an area of screen and
>watch it being manipulated and watch the methods as they do the

Not as dynamic as you described.  It shows all the methods (behavior) that
are supported by the object class (the selected area of screen) as well as
its values (state).

>Let me give an example of exploring a Smalltalk method using
>reversibility and "value at mouse pointer":
>	| a b |
>	a := 5.
>	b := 7.
>	b := a + b.
>	a := a + b * 2. self halt.
>	^a max: b
>In any Smalltalk debugger I know of, a = 34 and b = 12, and that is it.
>You get the state of execution at the point you dropped into the
>debugger, period.

As I described in another post, VAST debugger can actually allow you to drop
'back' the execution to the beginning of the method context.  So, using your
example, you can restart at the point where a = 5 and b = 7 and then execute
step by step again. 

> Now let's examine the values of the variables by
>placing the mouse pointer on them (using reversibility) -- I generalize
>"value at mouse pointer" to include value returned by messages also:
>	| a    b |
>	  ^    ^
>	 nil  nil
>	a := 5.
>	^
>        5
>	b := 7.
>	^
>	7
>	b := a  +   b.
>	^    ^  ^   ^
>	12   5  12  7	
>	a := a   +   b   *  2. self halt.
>	^    ^   ^   ^   ^
>	34   5   17  12  34
>	^a max: b

>All this information is available at one place - no need to go to any
>other browsers, stack views, etc. ZStep unifies code editing and viewing
>with execution and debugging -- again, this is something I want to do in
>Squeak, so the scope of what I'm wanting to do is somewhat grandiose
>(always shoot for the stars -- if you miss and hit the Moon you're still
>doing pretty good).

This is a bit sophicated and VA debugger can't do it.

I just want to give you another reference point for your research on top of
the suggestions that other have given.   By no means I think VA debugger and
Visualizer tool is what you have in mind.

I am running out of battery and I have to go
Mark Wai
Wator Innovision
mailto: mwai at or:[ mwai at ] 

More information about the Squeak-dev mailing list