Skip to main content

[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);
 	}
 
 	/**



Back to the top