/*******************************************************************************
* Copyright (c) 2004, 2008 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.model;
import org.eclipse.cdt.core.IAddress;
import org.eclipse.debug.core.DebugException;
import org.eclipse.debug.core.model.IStackFrame;
import org.eclipse.debug.core.model.IValue;
/**
* C/C++ specific extension of <code>IStackFrame</code>.
*/
public interface ICStackFrame extends IRunToLine, IRunToAddress, IResumeAtLine, IResumeAtAddress, IStackFrame, ICDebugElement {
/**
* Returns the address of this stack frame.
*
* @return the address of this stack frame
*/
public IAddress getAddress();
/**
* Returns the source file of this stack frame or <code>null</code>
* if the source file is unknown.
*
* @return the source file of this stack frame
*/
public String getFile();
/**
* Returns the function of this stack frame or <code>null</code>
* if the function is unknown.
*
* @return the function of this stack frame
*/
public String getFunction();
/**
* Returns the line number of this stack frame or <code>0</code>
* if the line number is unknown.
*
* @return the line number of this stack frame
*/
public int getFrameLineNumber();
/**
* Returns the level of this stack frame.
*
* @return the level of this stack frame
*/
public int getLevel();
/**
* Evaluates the given expression in the context of this stack frame.
*
* @param expression expression to evaluate
* @return the evaluation result
* @throws DebugException if this method fails.
*/
public IValue evaluateExpression( String expression ) throws DebugException;
/**
* Evaluates the specified expression in the context of this stack frame
* and returns the evaluation result as a string.
*
* @param expression the expression to evaluate
* @return the evaluation result
* @throws DebugException on failure. Reasons include:
*/
public String evaluateExpressionToString( String expression ) throws DebugException;
/**
* Returns whether this stack frame can currently evaluate an expression.
*
* @return whether this stack frame can currently evaluate an expression
*/
boolean canEvaluate();
}