diff --git a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/cdi/CTarget.java b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/cdi/CTarget.java index 431aaffdeed..90ed9c8a6ed 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/cdi/CTarget.java +++ b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/cdi/CTarget.java @@ -10,7 +10,6 @@ import java.util.List; import org.eclipse.cdt.debug.core.cdi.CDIException; import org.eclipse.cdt.debug.core.cdi.ICDISession; -import org.eclipse.cdt.debug.core.cdi.ICDIExpressionManager; import org.eclipse.cdt.debug.core.cdi.model.ICDIGlobalVariable; import org.eclipse.cdt.debug.core.cdi.model.ICDIMemoryBlock; import org.eclipse.cdt.debug.core.cdi.model.ICDIRegisterGroup; @@ -360,6 +359,24 @@ public class CTarget implements ICDITarget { } } + /** + * @see org.eclipse.cdt.debug.core.cdi.model.ICDITarget#stepReturn() + */ + public void stepReturn() throws CDIException { + MISession mi = session.getMISession(); + CommandFactory factory = mi.getCommandFactory(); + MIExecFinish finish = factory.createMIExecFinish(); + try { + mi.postCommand(finish); + MIInfo info = finish.getMIInfo(); + if (info == null) { + throw new CDIException("No answer"); + } + } catch (MIException e) { + throw new CDIException(e.toString()); + } + } + /** * @see org.eclipse.cdt.debug.core.cdi.model.ICDITarget#suspend() */ diff --git a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/cdi/CThread.java b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/cdi/CThread.java index 1663c0a29d1..1a01b407a7f 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/cdi/CThread.java +++ b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/cdi/CThread.java @@ -135,6 +135,13 @@ public class CThread extends CObject implements ICDIThread { getTarget().stepOverInstruction(); } + /** + * @see org.eclipse.cdt.debug.core.cdi.model.ICDIThread#stepReturn() + */ + public void stepReturn() throws CDIException { + getTarget().stepReturn(); + } + /** * @see org.eclipse.cdt.debug.core.cdi.model.ICDIThread#suspend() */