Copyright (c) 2000, 2005 IBM Corporation and others.
This program and the accompanying materials
are made available under the terms of the Eclipse Public License 2.0
which accompanies this distribution, and is available at
https://www.eclipse.org/legal/epl-2.0/
SPDX-License-Identifier: EPL-2.0
Contributors:
IBM Corporation - initial API and implementation
/*******************************************************************************
* Copyright (c) 2000, 2005 IBM Corporation and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
* which accompanies this distribution, and is available at
* https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
*
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
package org.eclipse.debug.core.model;
import org.eclipse.debug.core.DebugException;
A thread is a sequential flow of execution in a debug target.
A thread contains stack frames. Stack frames are only available when the
thread is suspended, and are returned in top-down order.
Minimally, a thread supports the following:
- suspend/resume
- stepping
- terminate
Clients may implement this interface.
See Also: - ISuspendResume
- IStep
- ITerminate
- IStackFrame
/**
* A thread is a sequential flow of execution in a debug target.
* A thread contains stack frames. Stack frames are only available when the
* thread is suspended, and are returned in top-down order.
* Minimally, a thread supports the following:
* <ul>
* <li>suspend/resume
* <li>stepping
* <li>terminate
* </ul>
* <p>
* Clients may implement this interface.
* </p>
* @see ISuspendResume
* @see IStep
* @see ITerminate
* @see IStackFrame
*/
public interface IThread extends IDebugElement, ISuspendResume, IStep, ITerminate {
Returns the stack frames contained in this thread. An
empty collection is returned if this thread contains
no stack frames, or is not currently suspended. Stack frames
are returned in top down order.
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.
Returns: a collection of stack frames Since: 2.0
/**
* Returns the stack frames contained in this thread. An
* empty collection is returned if this thread contains
* no stack frames, or is not currently suspended. Stack frames
* are returned in top down order.
*
* @return a collection of stack frames
* @exception DebugException if this method fails. Reasons include:
* <ul><li>Failure communicating with the VM. The DebugException's
* status code contains the underlying exception responsible for
* the failure.</li>
* </ul>
* @since 2.0
*/
IStackFrame[] getStackFrames() throws DebugException;
Returns whether this thread currently contains any stack
frames.
Throws: - DebugException – if this method fails. Reasons include:
- Failure communicating with the debug target. The DebugException's
status code contains the underlying exception responsible for
the failure.
Returns: whether this thread currently contains any stack frames Since: 2.0
/**
* Returns whether this thread currently contains any stack
* frames.
*
* @return whether this thread currently contains any stack frames
* @exception DebugException if this method fails. Reasons include:
* <ul><li>Failure communicating with the debug target. The DebugException's
* status code contains the underlying exception responsible for
* the failure.</li>
* </ul>
* @since 2.0
*/
boolean hasStackFrames() throws DebugException;
Returns the priority of this thread. The meaning of this number is
operating-system dependent.
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.
Returns: thread priority
/**
* Returns the priority of this thread. The meaning of this number is
* operating-system dependent.
*
* @return thread priority
* @exception DebugException if this method fails. Reasons include:
* <ul>
* <li>Failure communicating with the VM. The
* DebugException's status code contains the underlying
* exception responsible for the failure.</li>
* </ul>
*/
int getPriority() throws DebugException;
Returns the top stack frame or null
if there is currently no
top stack frame.
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.
Returns: the top stack frame, or null
if none
/**
* Returns the top stack frame or <code>null</code> if there is currently no
* top stack frame.
*
* @return the top stack frame, or <code>null</code> if none
* @exception DebugException if this method fails. Reasons include:
* <ul>
* <li>Failure communicating with the VM. The
* DebugException's status code contains the underlying
* exception responsible for the failure.</li>
* </ul>
*/
IStackFrame getTopStackFrame() throws DebugException;
Returns the name of this thread. Name format is debug model specific, and
should be specified by a debug model.
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.
Returns: this thread's name
/**
* Returns the name of this thread. Name format is debug model specific, and
* should be specified by a debug model.
*
* @return this thread's name
* @exception DebugException if this method fails. Reasons include:
* <ul>
* <li>Failure communicating with the VM. The
* DebugException's status code contains the underlying
* exception responsible for the failure.</li>
* </ul>
*/
String getName() throws DebugException;
Returns the breakpoints that caused this thread to suspend,
or an empty collection if this thread is not suspended or
was not suspended by a breakpoint. Usually a single breakpoint
will be returned, but this collection can contain more than
one breakpoint if two breakpoints are at the same location in
a program.
Returns: the collection of breakpoints that caused this thread to suspend
/**
* Returns the breakpoints that caused this thread to suspend,
* or an empty collection if this thread is not suspended or
* was not suspended by a breakpoint. Usually a single breakpoint
* will be returned, but this collection can contain more than
* one breakpoint if two breakpoints are at the same location in
* a program.
*
* @return the collection of breakpoints that caused this thread to suspend
*/
IBreakpoint[] getBreakpoints();
}