Interface IJavaThread

    • Method Detail

      • isSystemThread

        boolean isSystemThread()
                        throws DebugException
        Returns 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 DebugException
        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.
        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 DebugException
        Returns 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, or null if none.
        Returns:
        thread group name, or null if 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, or null if 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 null if no match is found.

        Parameters:
        variableName - the name of the variable to search for
        Returns:
        a variable, or null if 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 by evaluationDetail (one of DebugEvent.EVALUATION or DebugEvent.EVALUATION_IMPLICIT).

        Since 3.5, the org.eclipse.jdt.debug.breakpointListeners extension 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 perform
        monitor - progress monitor (may be null
        evaluationDetail - one of DebugEvent.EVALUATION or DebugEvent.EVALUATION_IMPLICIT
        hitBreakpoints - whether or not breakpoints should be honored in this thread during the evaluation. If false, 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 DebugException
        Attempts to terminate the currently executing IEvaluationRunnable in 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 executing IEvaluationRunnable supports termination. An IEvaluationRunnable supports termination if it implements ITerminate
        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 or null.
        Returns:
        IJavaObject the contended monitor object or null if 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 or null if 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 DebugException
        Returns 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 or null if none.
        Returns:
        thread group or null
        Throws:
        DebugException - if the thread group cannot be computed
        Since:
        3.2
      • isDaemon

        boolean isDaemon()
                  throws DebugException
        Returns 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 DebugException
        Returns 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