Feature Explanation
Start
To start your Java program with an attached jgaze execution viewer you simply add "-jar jgaze.jar" to your start command.
It must be inserted directly after the "java" command and before all parameters and the main class name.
No extra compilation or instrumentation step is needed.
First Thread
Then jgaze starts and the first of your program's threads becomes visible. It moves quickly as your program evolves.
You can drag the mouse to see it from different angles. The thread is visualized by a package tree - that is the
horizontal tree-like structure - plus a stack that builds on top of it.
Package Tree
The package tree covers all classes that have been used already. Each of the full class name's parts adds one
branch to the package tree. For instance com.jimmyco.core.ClassA.method1 and com.jimmyco.util.ClassB.method3 both add common branches for
"com" and "jimmyco" to the package tree's origin. Then they fork into different sub-branches for "core", "ClassA" and "method1"
and "util", "ClassB" and "method3", respectively.
In reality your package trees become larger than expected since your VM calls a lot of classes behind the scenes that you
are usually not aware off.
Stack
The call stack grows on top of the package tree. Let's assume your program starts with com.jimmyco.core.ClassA.main which
calls ClassB.method1 which then calls ClassC.method3. This will result in a graphical stack that resembles
a stair with one step for each call level.
Textual Stack
To see the stack as text you can hit the pause button. The program execution will stop and the stack is displayed
in text form. If the stack is too long to be displayed at once you can scroll up and down by simply moving
the mouse.
Exceptions
Whenever an exception is thrown within your program a simplified explosion is visible on the very same stack level.
Then an arrow appears that points down to the stack level where the exception is caught. Finally all stack
levels in between disappear.
Thread Creation
When one thread creates another one a grey arrow becomes visible that points from the parent thread to the
child thread. From that moment on both threads run in parallel.
Switching between Textual Stacks
If you click onto the pause button in a situation where several threads are executed at the same time
then the textual stack is displayed for only one of them. The thread corresponding with the textual stack is
marked with a red circle. To switch to another thread you can drag the mouse sideways and the stack text will
change accordingly.
Thread Death
Once a thread terminates a black cross is shown on its former location.