[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
[cdt-patch] implementation of runUntil
|
Index: ChangeLog
===================================================================
RCS file: /home/tools/org.eclipse.cdt.debug.mi.core/ChangeLog,v
retrieving revision 1.39
diff -u -r1.39 ChangeLog
--- ChangeLog 27 Nov 2002 16:26:25 -0000 1.39
+++ ChangeLog 28 Nov 2002 16:14:29 -0000
@@ -1,3 +1,8 @@
+2002-11-28 Alain Magloire
+
+ * src/.../mi/core/cdi/CTarget.java (runUntil): new method implemented.
+ * src/.../mi/core/cdi/CThread.java (runUntil): new method implemented.
+
2002-11-26 Doug Schaefer
* src/.../mi/core/CygwinGDBDebugger.java:
Index: src/org/eclipse/cdt/debug/mi/core/cdi/CTarget.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/cdi/CTarget.java,v
retrieving revision 1.33
diff -u -r1.33 CTarget.java
--- src/org/eclipse/cdt/debug/mi/core/cdi/CTarget.java 18 Nov 2002 19:04:16 -0000 1.33
+++ src/org/eclipse/cdt/debug/mi/core/cdi/CTarget.java 28 Nov 2002 16:14:30 -0000
@@ -9,6 +9,7 @@
import java.util.List;
import org.eclipse.cdt.debug.core.cdi.CDIException;
+import org.eclipse.cdt.debug.core.cdi.ICDILocation;
import org.eclipse.cdt.debug.core.cdi.ICDIRegisterObject;
import org.eclipse.cdt.debug.core.cdi.ICDISession;
import org.eclipse.cdt.debug.core.cdi.model.ICDIGlobalVariable;
@@ -27,6 +28,7 @@
import org.eclipse.cdt.debug.mi.core.command.MIExecRun;
import org.eclipse.cdt.debug.mi.core.command.MIExecStep;
import org.eclipse.cdt.debug.mi.core.command.MIExecStepInstruction;
+import org.eclipse.cdt.debug.mi.core.command.MIExecUntil;
import org.eclipse.cdt.debug.mi.core.command.MIInfoThreads;
import org.eclipse.cdt.debug.mi.core.command.MITargetDetach;
import org.eclipse.cdt.debug.mi.core.command.MIThreadSelect;
@@ -421,6 +423,34 @@
throw new CDIException(e.getMessage());
}
lastExecutionToken = finish.getToken();
+ }
+
+ /**
+ * @see org.eclipse.cdt.debug.core.cdi.model.ICDITarget#runUntil(ICDILocation)
+ */
+ public void runUntil(ICDILocation location) throws CDIException {
+ MISession mi = session.getMISession();
+ CommandFactory factory = mi.getCommandFactory();
+ String loc = "";
+ if (location.getFile() != null) {
+ loc = location.getFile() + ":" + location.getLineNumber();
+ } else if (location.getFunction() != null) {
+ loc = location.getFunction();
+ } else if (location.getAddress() != 0) {
+ loc = "" + location.getAddress();
+ }
+ MIExecUntil until = factory.createMIExecUntil(loc);
+ try {
+ mi.postCommand(until);
+ MIInfo info = until.getMIInfo();
+ if (info == null) {
+ throw new CDIException("No answer");
+ }
+ } catch (MIException e) {
+ throw new CDIException(e.getMessage());
+ }
+ lastExecutionToken = until.getToken();
+
}
/**
Index: src/org/eclipse/cdt/debug/mi/core/cdi/CThread.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/cdi/CThread.java,v
retrieving revision 1.21
diff -u -r1.21 CThread.java
--- src/org/eclipse/cdt/debug/mi/core/cdi/CThread.java 18 Nov 2002 19:04:36 -0000 1.21
+++ src/org/eclipse/cdt/debug/mi/core/cdi/CThread.java 28 Nov 2002 16:14:30 -0000
@@ -6,6 +6,7 @@
package org.eclipse.cdt.debug.mi.core.cdi;
import org.eclipse.cdt.debug.core.cdi.CDIException;
+import org.eclipse.cdt.debug.core.cdi.ICDILocation;
import org.eclipse.cdt.debug.core.cdi.model.ICDIStackFrame;
import org.eclipse.cdt.debug.core.cdi.model.ICDIThread;
import org.eclipse.cdt.debug.mi.core.MIException;
@@ -252,6 +253,14 @@
public void stepReturn() throws CDIException {
getCTarget().setCurrentThread(this);
getTarget().stepReturn();
+ }
+
+ /**
+ * @see org.eclipse.cdt.debug.core.cdi.model.ICDIThread#runUntil(ICDILocation)
+ */
+ public void runUntil(ICDILocation location) throws CDIException {
+ getCTarget().setCurrentThread(this);
+ getTarget().runUntil(location);
}
/**