APIdia Launch Partner
Top Fields Constructors Methods
sun.jvm.hotspot.runtime

public Class JavaThread

extends Thread
Class Inheritance
Known Direct Subclasses
sun.jvm.hotspot.runtime.HiddenJavaThread
Imports
java.io.*, java.util.*, sun.jvm.hotspot.debugger.*, sun.jvm.hotspot.oops.*, sun.jvm.hotspot.types.*, sun.jvm.hotspot.utilities.*, .Observable, .Observer

Field Summary

Modifier and TypeField and Description
private static JavaThreadPDAccess
private static AddressField
private static final String
private static AddressField
private static int
private static int
private static AddressField
private static final boolean
private static int
private static int
private static int
private static int
private static int
private static int
private static int
private static AddressField
private static AddressField
private static long
private static long
private static CIntegerField
private static int
private static int
private static int
private static long
private static AddressField
private static AddressField
private static CIntegerField
private static CIntegerField
private static long
private static CIntegerField
private static int

Constructor Summary

AccessConstructor and Description
public

Method Summary

Modifier and TypeMethod and Description
public JNIHandleBlock
private Frame
public static AddressField
public Address
getBaseOfStackPointer()

A stack pointer older than any java frame stack pointer.

public ContinuationEntry
public Frame
getCurrentFrameGuess()

This is only designed to be used by the debugging system.

public Oop
public Frame
getLastFrame()

Accessing frames

protected Frame
getLastFramePD()

Internal routine implemented by platform-dependent subclasses

public Address
getLastJavaFP()

Abstract accessor to last Java frame pointer, implemented by OS/CPU-specific JavaThread implementation.

public Address
public Address
getLastJavaSP()

Get the last Java stack pointer

public JavaVFrame
getLastJavaVFrame(RegisterMap regMap)

Accessing frames.

public JavaVFrame
getLastJavaVFrameDbg()

This should only be used by a debugger.

public Address
public OSThread
public Address
public long
public long
public int
public String
getThreadName()

Get the Java-side name of this thread

public Oop
getThreadObj()

Gets the Java-side thread object for this JavaThread

public ThreadProxy
public JavaThreadState
public boolean
hasLastJavaFrame()

Tells whether the last Java frame is set

private static synchronized void
public boolean
public boolean
public boolean
public boolean
public boolean
public Address
public RegisterMap
newRegisterMap(boolean updateMap)

In this system, a JavaThread is the top-level factory for a RegisterMap, since the JavaThread implementation is already platform-specific and RegisterMap is also necessarily platform-specific.

public void
oopsDo(AddressVisitor oopVisitor)

Overrides sun.jvm.hotspot.runtime.Thread.oopsDo.

Memory operations

public void
public void
printThreadContextOn(PrintStream out, boolean verbose)

public void
public void
printThreadIDOn(PrintStream tty)

Also only intended for use by the debugging system.

public void
pack-priv void
Inherited from sun.jvm.hotspot.runtime.Thread:
allocatedBytesgetCurrentPendingMonitorgetCurrentWaitingMonitorisHiddenFromExternalViewisVMThreadosThreadsuspendFlagsthreadObjectAddresstlab

Field Detail

accessback to summary
private static JavaThreadPDAccess access
activeHandlesFieldback to summary
private static AddressField activeHandlesField
ADDRESS_FORMATback to summary
private static final String ADDRESS_FORMAT
anchorFieldback to summary
private static AddressField anchorField
BLOCKEDback to summary
private static int BLOCKED
BLOCKED_TRANSback to summary
private static int BLOCKED_TRANS
contEntryFieldback to summary
private static AddressField contEntryField
DEBUGback to summary
private static final boolean DEBUG
EXITINGback to summary
private static int EXITING
IN_JAVAback to summary
private static int IN_JAVA
IN_JAVA_TRANSback to summary
private static int IN_JAVA_TRANS
IN_NATIVEback to summary
private static int IN_NATIVE
IN_NATIVE_TRANSback to summary
private static int IN_NATIVE_TRANS
IN_VMback to summary
private static int IN_VM
IN_VM_TRANSback to summary
private static int IN_VM_TRANS
lastJavaPCFieldback to summary
private static AddressField lastJavaPCField
lastJavaSPFieldback to summary
private static AddressField lastJavaSPField
lockStackBaseOffsetback to summary
private static long lockStackBaseOffset
lockStackTopOffsetback to summary
private static long lockStackTopOffset
monitorOwnerIDFieldback to summary
private static CIntegerField monitorOwnerIDField
NEWback to summary
private static int NEW
NEW_TRANSback to summary
private static int NEW_TRANS
NOT_TERMINATEDback to summary
private static int NOT_TERMINATED
oopPtrSizeback to summary
private static long oopPtrSize
osThreadFieldback to summary
private static AddressField osThreadField

Hides sun.jvm.hotspot.runtime.Thread.osThreadField.

stackBaseFieldback to summary
private static AddressField stackBaseField
stackSizeFieldback to summary
private static CIntegerField stackSizeField
terminatedFieldback to summary
private static CIntegerField terminatedField
threadObjFieldOffsetback to summary
private static long threadObjFieldOffset
threadStateFieldback to summary
private static CIntegerField threadStateField
UNINITIALIZEDback to summary
private static int UNINITIALIZED

Constructor Detail

JavaThreadback to summary
public JavaThread(Address addr)

Method Detail

activeHandlesback to summary
public JNIHandleBlock activeHandles()
cookLastFrameback to summary
private Frame cookLastFrame(Frame fr)
getAnchorFieldback to summary
public static AddressField getAnchorField()
getBaseOfStackPointerback to summary
public Address getBaseOfStackPointer()

A stack pointer older than any java frame stack pointer. Only needed on some platforms; for example, see thread_solaris_sparc.hpp.

getContEntryback to summary
public ContinuationEntry getContEntry()
getCurrentFrameGuessback to summary
public Frame getCurrentFrameGuess()

This is only designed to be used by the debugging system. Returns a "best guess" of the topmost frame on the stack. This guess should be as "raw" as possible. For example, if the topmost frame is an interpreter frame (the return PC is in the interpreter) but is not a valid frame (i.e., the BCI has not yet been set up) this should still return the topmost frame and not the sender. Validity checks are done at higher levels.

getCurrentParkBlockerback to summary
public Oop getCurrentParkBlocker()
getLastFrameback to summary
public Frame getLastFrame()

Accessing frames

getLastFramePDback to summary
protected Frame getLastFramePD()

Internal routine implemented by platform-dependent subclasses

getLastJavaFPback to summary
public Address getLastJavaFP()

Abstract accessor to last Java frame pointer, implemented by OS/CPU-specific JavaThread implementation. May return null if there is no frame pointer or if it is not necessary on this platform.

getLastJavaPCback to summary
public Address getLastJavaPC()
getLastJavaSPback to summary
public Address getLastJavaSP()

Get the last Java stack pointer

getLastJavaVFrameback to summary
public JavaVFrame getLastJavaVFrame(RegisterMap regMap)

Accessing frames. Returns the last Java VFrame or null if none was present. (NOTE that this is mostly unusable in a debugging system; see getLastJavaVFrameDbg, below, which provides very different functionality.)

getLastJavaVFrameDbgback to summary
public JavaVFrame getLastJavaVFrameDbg()

This should only be used by a debugger. Uses the current frame guess to attempt to get the topmost JavaVFrame. (getLastJavaVFrame, as a port of the VM's routine, assumes the VM is at a safepoint.)

getMonitorOwnerIDback to summary
public Address getMonitorOwnerID()
getOSThreadback to summary
public OSThread getOSThread()
getStackBaseback to summary
public Address getStackBase()
getStackBaseValueback to summary
public long getStackBaseValue()
getStackSizeback to summary
public long getStackSize()
getTerminatedback to summary
public int getTerminated()
getThreadNameback to summary
public String getThreadName()

Get the Java-side name of this thread

getThreadObjback to summary
public Oop getThreadObj()

Gets the Java-side thread object for this JavaThread

getThreadProxyback to summary
public ThreadProxy getThreadProxy()
getThreadStateback to summary
public JavaThreadState getThreadState()
hasLastJavaFrameback to summary
public boolean hasLastJavaFrame()

Tells whether the last Java frame is set

initializeback to summary
private static synchronized void initialize(TypeDataBase db)

Hides sun.jvm.hotspot.runtime.Thread.initialize.

isExitingback to summary
public boolean isExiting()
isInStackback to summary
public boolean isInStack(Address a)

Overrides sun.jvm.hotspot.runtime.Thread.isInStack.

isLockOwnedback to summary
public boolean isLockOwned(OopHandle obj)
isLockOwnedback to summary
public boolean isLockOwned(Address a)

Overrides sun.jvm.hotspot.runtime.Thread.isLockOwned.

isTerminatedback to summary
public boolean isTerminated()
lastSPDbgback to summary
public Address lastSPDbg()
newRegisterMapback to summary
public RegisterMap newRegisterMap(boolean updateMap)

In this system, a JavaThread is the top-level factory for a RegisterMap, since the JavaThread implementation is already platform-specific and RegisterMap is also necessarily platform-specific. The updateMap argument indicates whether the register map needs to be updated, for example during stack traversal -- see frame.hpp.

oopsDoback to summary
public void oopsDo(AddressVisitor oopVisitor)

Overrides sun.jvm.hotspot.runtime.Thread.oopsDo.

Doc from sun.jvm.hotspot.runtime.Thread.oopsDo.

Memory operations

printInfoOnback to summary
public void printInfoOn(PrintStream tty)
printThreadContextOnback to summary
public void printThreadContextOn(PrintStream out, boolean verbose)
printThreadIDback to summary
public void printThreadID()
printThreadIDOnback to summary
public void printThreadIDOn(PrintStream tty)

Also only intended for use by the debugging system. Provides the same effect of OSThread::print(); that is, prints a value which allows the user to intuitively understand which native OS thread maps to this Java thread. Does not print a newline or leading or trailing spaces.

printThreadInfoOnback to summary
public void printThreadInfoOn(PrintStream out)
setThreadPDAccessback to summary
pack-priv void setThreadPDAccess(JavaThreadPDAccess access)