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.

	
  Main Contact Legal Manual