15.07.2013 Views

jgrasp handbook

jgrasp handbook

jgrasp handbook

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

DRAFT, February 18, 2003, Page 101<br />

[state] - shows the current suspend state: running, waiting, waiting on monitor, sleeping, not<br />

started, zombie, or unknown.<br />

(debugger action/state) - shows what the debugger is currently doing with respect to the thread:<br />

at breakpoint, suspended, running to cursor, or stepping. If none of these are true (the thread is<br />

running normally), nothing is shown.<br />

monitors - shows the monitors owned by the thread, by id number. This is the same id number<br />

shown for objects in the variables window. If the thread is waiting on a monitor, this monitor is<br />

shown in [braces].<br />

For a simple, non-gui application, there will be your "main" thread, any threads that your code creates,<br />

and several system support threads (Signal Dispatcher, Reference Handler, Finalizer). For applets or gui<br />

applications, there will be numerous event queue, gui, and system threads.<br />

19.4 Call Stack Window<br />

Shows the current call stack for the selected thread, if the thread is suspended. When the thread is<br />

resumed, this window is disabled. Each frame of the stack shows the method, filename and line number if<br />

available, and program counter. The program counter is the current byte code index within the method.<br />

Selecting a frame will select the source line, if the corresponding file can be found, and show the<br />

associated variables in the variables window. Source files are located using the "Sources" entry of the<br />

global settings.<br />

19.5 Variables Window<br />

Shows the available variables for the current frame of the call stack. Composite objects can be expanded<br />

to see the fields or array elements. The target code must be compiled in debug mode, or not much<br />

information will be available here.<br />

this or static - shows fields for the current object if within an instance method or code block, or static<br />

fields available within the current static context.<br />

Arguments - shows arguments to the current method if within a method.<br />

Locals - shows the current local variables.<br />

Objects are shown as squares, primitive types as triangles. All non-fields are colored blue. Field icons are<br />

color coded based on the declared type of the object containing them (the actual type may be a subclass<br />

or interface implementation). The coding is:<br />

orange - field is declared in a superclass of the declared type of the containing object or an<br />

interface implemented by a superclass.<br />

green - field is declared in the declared type of the containing object.<br />

cyan - field is declared in an interface implemented by the declared type of the containing object.<br />

yellow - field is declared in a subclass of the declared type of the containing object or an<br />

interface implemented by a subclass.<br />

Static fields are shown in italic type.<br />

When a field is selected, the type in which it was declared is shown at the bottom of the variables window.<br />

For arrays, at most ten elements are shown at once. To change the elements that are shown, select the<br />

object then click on it (but don't double click). A slider bar will appear, on which you can select the first<br />

element shown.<br />

Any masked fields are shown with a grey bar over the icon.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!