/******************************************************************************* * Copyright (c) 2000, 2007 QNX Software Systems and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * QNX Software Systems - Initial API and implementation *******************************************************************************/ package org.eclipse.cdt.debug.core.cdi.model; import org.eclipse.cdt.debug.core.cdi.CDIException; import org.eclipse.cdt.debug.core.cdi.ICDILocation; /** * * A thread 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. * * @since Jul 8, 2002 */ public interface ICDIThread extends ICDIExecuteStep, ICDIExecuteResume, ICDISuspend, ICDIObject { /** * 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 * @throws CDIException if this method fails. Reasons include: */ ICDIStackFrame[] getStackFrames() throws CDIException; /** * Returns the stack frames contained in this thread whose levels * are between the two arguments(inclusive). * 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 * @throws CDIException if this method fails. Reasons include: */ ICDIStackFrame[] getStackFrames(int lowFrame, int highFrame) throws CDIException; /** * Returns the depth of the stack frames. * * @return depth of stack frames * @throws CDIException if this method fails. Reasons include: */ int getStackFrameCount() throws CDIException; /** * Return thread local storage variables descriptor. * * @return * @throws CDIException */ ICDIThreadStorageDescriptor[] getThreadStorageDescriptors() throws CDIException; /** * Create a variable from the descriptor for evaluation. A CreatedEvent will be trigger and * ChangedEvent will also be trigger when the variable is assign a new value. * DestroyedEvent is fired when the variable is out of scope and automatically * removed from the manager list. * @param varDesc ICDThreadStorageDesc * @return * @throws CDIException */ ICDIThreadStorage createThreadStorage(ICDIThreadStorageDescriptor varDesc) throws CDIException; /** * Equivalent to resume(false) * * @deprecated * @throws CDIException if this method fails. Reasons include: */ void resume() throws CDIException; /** * Equivalent to stepOver(1) * * @deprecated * @throws CDIException if this method fails. Reasons include: */ void stepOver() throws CDIException; /** * Equivalent to stepInto(1) * * @deprecated * @throws CDIException if this method fails. Reasons include: */ void stepInto() throws CDIException; /** * Equivalent to stepOverInstruction(1) * * @deprecated * @throws CDIException if this method fails. Reasons include: */ void stepOverInstruction() throws CDIException; /** * Equivalent to stepIntoInstruction(1) * * @deprecated * @throws CDIException if this method fails. Reasons include: */ void stepIntoInstruction() throws CDIException; /** * This method is deprecated and will only be available * on the stackframe * * @deprecated * @see ICDIStackFrame.stepReturn() * @throws CDIException */ void stepReturn() throws CDIException; /** * Equivalent to stepUntil(location) * * @deprecated * @see #stepUntil(ICDILocation) * @throws CDIException if this method fails. Reasons include: */ void runUntil(ICDILocation location) throws CDIException; /** * Equivalent to resume(location) * * @deprecated * @see #resume(ICDILocation) * @throws CDIException if this method fails. Reasons include: */ void jump(ICDILocation location) throws CDIException; /** * Equivalent to resume(false) * * @deprecated * @see #resume(boolean) * @throws CDIException */ void signal() throws CDIException; /** * Equivalent to resume(signal) * * @deprecated * @see #resume(ICDISignal) * @param signal * @throws CDIException */ void signal(ICDISignal signal) throws CDIException; /** * Returns true if the threads are the same. */ boolean equals(ICDIThread thead); }