Package org.eclipse.jdt.debug.core
Interface IJavaThread
-
- All Superinterfaces:
IAdaptable,IDebugElement,IFilteredStep,IStep,ISuspendResume,ITerminate,IThread
public interface IJavaThread extends IThread, IFilteredStep
A thread in a Java virtual machine.- See Also:
IThread- Restriction:
- This interface is not intended to be implemented by clients.
- Restriction:
- This interface is not intended to be extended by clients.
-
-
Field Summary
Fields Modifier and Type Field Description static intERR_INCOMPATIBLE_THREAD_STATEStatus code indicating a request to perform a message send failed because a thread was not suspended by a step or breakpoint event.static intERR_NESTED_METHOD_INVOCATIONStatus code indicating a request to perform a message send failed because a thread was already performing a message send.static intERR_THREAD_NOT_SUSPENDEDStatus code indicating a request failed because a thread was not suspended.
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description booleancanTerminateEvaluation()Returns whether the currently executingIEvaluationRunnablesupports termination.IJavaVariablefindVariable(String variableName)Returns a variable with the given name, ornullif unable to resolve a variable with the name, or if this thread is not currently suspended.IJavaObjectgetContendedMonitor()Returns a Java object for the monitor for which this thread is currently waiting ornull.intgetFrameCount()Returns the number of frames in this thread.IJavaObject[]getOwnedMonitors()Returns the monitors owned by this thread ornullif this thread owns no monitors.IJavaThreadGroupgetThreadGroup()Returns the thread group this thread belongs to ornullif none.StringgetThreadGroupName()Returns the name of the thread group this thread belongs to, ornullif none.IJavaObjectgetThreadObject()Returns the object reference associated with this thread.booleanhasOwnedMonitors()Returns whether this threads owns at least one monitor.booleanisDaemon()Returns whether this thread is a daemon thread.booleanisOutOfSynch()Returns whether any of the stack frames associated with this thread are running code in the VM that is out of synch with the code in the workspace.booleanisPerformingEvaluation()Returns whether this thread is currently performing an evaluation.booleanisSystemThread()Returns whether this thread is a system thread.booleanmayBeOutOfSynch()Returns whether this thread may be running code in the VM that is out of synch with the code in the workspace.voidqueueRunnable(Runnable runnable)Queues the given runnable with the list of runnables associated with this thread.voidrunEvaluation(IEvaluationRunnable evaluation, IProgressMonitor monitor, int evaluationDetail, boolean hitBreakpoints)Invokes the given evaluation with the specified progress monitor.voidstop(IJavaObject exception)Request to stops this thread with the given exception.
The result will be the same as calling java.lang.Thread#stop(java.lang.Throwable).
If the thread is suspended when the method is called, the thread must be resumed to complete the action.
exception must represent an exception.voidterminateEvaluation()Attempts to terminate the currently executingIEvaluationRunnablein this thread, if any.-
Methods inherited from interface org.eclipse.core.runtime.IAdaptable
getAdapter
-
Methods inherited from interface org.eclipse.debug.core.model.IDebugElement
getDebugTarget, getLaunch, getModelIdentifier
-
Methods inherited from interface org.eclipse.debug.core.model.IFilteredStep
canStepWithFilters, stepWithFilters
-
Methods inherited from interface org.eclipse.debug.core.model.IStep
canStepInto, canStepOver, canStepReturn, isStepping, stepInto, stepOver, stepReturn
-
Methods inherited from interface org.eclipse.debug.core.model.ISuspendResume
canResume, canSuspend, isSuspended, resume, suspend
-
Methods inherited from interface org.eclipse.debug.core.model.ITerminate
canTerminate, isTerminated, terminate
-
Methods inherited from interface org.eclipse.debug.core.model.IThread
getBreakpoints, getName, getPriority, getStackFrames, getTopStackFrame, hasStackFrames
-
-
-
-
Field Detail
-
ERR_THREAD_NOT_SUSPENDED
static final int ERR_THREAD_NOT_SUSPENDED
Status code indicating a request failed because a thread was not suspended.- See Also:
- Constant Field Values
-
ERR_NESTED_METHOD_INVOCATION
static final int ERR_NESTED_METHOD_INVOCATION
Status code indicating a request to perform a message send failed because a thread was already performing a message send.
-
ERR_INCOMPATIBLE_THREAD_STATE
static final int ERR_INCOMPATIBLE_THREAD_STATE
Status code indicating a request to perform a message send failed because a thread was not suspended by a step or breakpoint event. When a thread is suspended explicitly via thesuspend()method, it is not able to perform method invocations (this is a JDI limitation).
-
-
Method Detail
-
isSystemThread
boolean isSystemThread() throws DebugExceptionReturns whether this thread is a system thread.- Returns:
- whether this thread is a system thread
- Throws:
DebugException- if this method fails. Reasons include:- Failure communicating with the VM. The DebugException's status code contains the underlying exception responsible for the failure.
-
isOutOfSynch
boolean isOutOfSynch() throws DebugExceptionReturns whether any of the stack frames associated with this thread are running code in the VM that is out of synch with the code in the workspace.- Returns:
- whether this thread is out of synch with the workspace.
- Throws:
DebugException- if this method fails. Reasons include:- Failure communicating with the VM. The DebugException's status code contains the underlying exception responsible for the failure.
- Since:
- 2.0
-
mayBeOutOfSynch
boolean mayBeOutOfSynch() throws DebugExceptionReturns whether this thread may be running code in the VM that is out of synch with the code in the workspace.- Returns:
- whether this thread may be out of synch with the workspace.
- Throws:
DebugException- if this method fails. Reasons include:- Failure communicating with the VM. The DebugException's status code contains the underlying exception responsible for the failure.
- Since:
- 2.0
-
isPerformingEvaluation
boolean isPerformingEvaluation()
Returns whether this thread is currently performing an evaluation.- Returns:
- whether this thread is currently performing an evaluation
- Since:
- 2.0
-
getThreadGroupName
String getThreadGroupName() throws DebugException
Returns the name of the thread group this thread belongs to, ornullif none.- Returns:
- thread group name, or
nullif none - Throws:
DebugException- if this method fails. Reasons include:- Failure communicating with the VM. The DebugException's status code contains the underlying exception responsible for the failure.
-
findVariable
IJavaVariable findVariable(String variableName) throws DebugException
Returns a variable with the given name, ornullif unable to resolve a variable with the name, or if this thread is not currently suspended.Variable lookup works only when a thread is suspended. Lookup is performed in all stack frames, in a top-down order, returning the first successful match, or
nullif no match is found.- Parameters:
variableName- the name of the variable to search for- Returns:
- a variable, or
nullif none - Throws:
DebugException- if this method fails. Reasons include:- Failure communicating with the VM. The DebugException's status code contains the underlying exception responsible for the failure.
-
runEvaluation
void runEvaluation(IEvaluationRunnable evaluation, IProgressMonitor monitor, int evaluationDetail, boolean hitBreakpoints) throws DebugException
Invokes the given evaluation with the specified progress monitor. This thread fires a resume event when the evaluation begins, and a suspend event when the evaluation completes or throws an exception. The events are given a detail as specified byevaluationDetail(one ofDebugEvent.EVALUATIONorDebugEvent.EVALUATION_IMPLICIT).Since 3.5, the
org.eclipse.jdt.debug.breakpointListenersextension point supports evaluation execution during a listener call back. Suspend and resume events are not fired during listener call backs. Unspecified model specific events are fired.- Parameters:
evaluation- the evaluation to performmonitor- progress monitor (may benullevaluationDetail- one ofDebugEvent.EVALUATIONorDebugEvent.EVALUATION_IMPLICIThitBreakpoints- whether or not breakpoints should be honored in this thread during the evaluation. Iffalse, breakpoints hit in this thread during the evaluation will be ignored.- Throws:
DebugException- if an exception occurs performing the evaluation- Since:
- 2.0
-
queueRunnable
void queueRunnable(Runnable runnable)
Queues the given runnable with the list of runnables associated with this thread. Runnables are executed asynchronously in a separate thread. This method should be used to execute any code which performs an operation like a method invocation.- Parameters:
runnable- the runnable to execute.- Since:
- 2.1
-
terminateEvaluation
void terminateEvaluation() throws DebugExceptionAttempts to terminate the currently executingIEvaluationRunnablein this thread, if any. Evaluations may be composed of a series of instructions. Terminating an evaluation means stopping the evaluation after the current instruction completes. A single instruction (such as a method invocation) cannot be interrupted.- Throws:
DebugException- if an exception occurs while terminating the evaluation.- Since:
- 2.1
-
canTerminateEvaluation
boolean canTerminateEvaluation()
Returns whether the currently executingIEvaluationRunnablesupports termination. An IEvaluationRunnable supports termination if it implementsITerminate- Returns:
- whether the current evaluation supports termination
- Since:
- 2.1
-
getContendedMonitor
IJavaObject getContendedMonitor() throws DebugException
Returns a Java object for the monitor for which this thread is currently waiting ornull.- Returns:
- IJavaObject the contended monitor object or
nullif this thread is not waiting on a monitor. - Throws:
DebugException- if an exception occurs while retrieving the contended monitor.- Since:
- 2.1
-
getOwnedMonitors
IJavaObject[] getOwnedMonitors() throws DebugException
Returns the monitors owned by this thread ornullif this thread owns no monitors.- Returns:
- the owned monitors
- Throws:
DebugException- if an exception occurs while retrieving the owned monitors of this thread.- Since:
- 2.1
-
hasOwnedMonitors
boolean hasOwnedMonitors() throws DebugExceptionReturns whether this threads owns at least one monitor.- Returns:
- boolean whether this thread owns a monitor
- Throws:
DebugException- if an exception occurs determining if there are owned monitors.- Since:
- 2.1
-
stop
void stop(IJavaObject exception) throws DebugException
Request to stops this thread with the given exception.
The result will be the same as calling java.lang.Thread#stop(java.lang.Throwable).
If the thread is suspended when the method is called, the thread must be resumed to complete the action.
exception must represent an exception.- Parameters:
exception- the exception to throw.- Throws:
DebugException- if the request fails- Since:
- 3.0
- See Also:
Thread.stop()
-
getThreadGroup
IJavaThreadGroup getThreadGroup() throws DebugException
Returns the thread group this thread belongs to ornullif none.- Returns:
- thread group or
null - Throws:
DebugException- if the thread group cannot be computed- Since:
- 3.2
-
isDaemon
boolean isDaemon() throws DebugExceptionReturns whether this thread is a daemon thread.- Returns:
- whether this thread is a daemon thread
- Throws:
DebugException- if an exception occurs while determining status- Since:
- 3.3
-
getFrameCount
int getFrameCount() throws DebugExceptionReturns the number of frames in this thread.- Returns:
- number of stack frames
- Throws:
DebugException- if an exception occurs while retrieving the count- Since:
- 3.3
-
getThreadObject
IJavaObject getThreadObject() throws DebugException
Returns the object reference associated with this thread.- Returns:
- thread object reference
- Throws:
DebugException- if unable to retrieve an object reference- Since:
- 3.6
-
-