Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[cdt-patch] MIStoppedEvent new methods.

Index: ChangeLog
===================================================================
RCS file: /home/tools/org.eclipse.cdt.debug.mi.core/ChangeLog,v
retrieving revision 1.41
diff -u -r1.41 ChangeLog
--- ChangeLog	28 Nov 2002 23:09:52 -0000	1.41
+++ ChangeLog	29 Nov 2002 18:51:28 -0000
@@ -1,3 +1,18 @@
+2002-11-29 Alain Magloire
+
+	* src/.../mi/core/event/MIBreakpointEvent.java:
+	* src/.../mi/core/event/MIFunctionFinishedEvent.java:
+	* src/.../mi/core/event/MILocationReachedEvent.java:
+	* src/.../mi/core/event/MISignalEvent.java:
+	* src/.../mi/core/event/MISteppingRangeEvent.java:
+	* src/.../mi/core/event/MIStoppedEvent.java:
+	* src/.../mi/core/event/MIWatchpointEvent.java:
+	* src/.../mi/core/event/MIWatchpointTriggerEvent.java:
+	* src/.../mi/core/RxThread.java:
+	Some events like the temporary events, do not have
+	any specific format but do provide a frame and a thread-id
+	move the code in MIStoppedEvent.
+
 2002-11-28 Alain Magloire
 
 	* src/.../mi/core/cdi/MemoryBlock.java (setValue):  Only get a byte.
Index: src/org/eclipse/cdt/debug/mi/core/RxThread.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/RxThread.java,v
retrieving revision 1.37
diff -u -r1.37 RxThread.java
--- src/org/eclipse/cdt/debug/mi/core/RxThread.java	26 Oct 2002 20:28:52 -0000	1.37
+++ src/org/eclipse/cdt/debug/mi/core/RxThread.java	29 Nov 2002 18:51:28 -0000
@@ -153,7 +153,7 @@
 				} else if ("error".equals(state)) {
 					if (session.getMIInferior().isRunning()) {
 						session.getMIInferior().setSuspended();
-						MIEvent event = new MIStoppedEvent(id);
+						MIEvent event = new MIStoppedEvent(rr);
 						session.fireEvent(event);
 					}
 				}
@@ -230,7 +230,7 @@
 				// "reason" ??? still fire a stopped event.
 				if (e == null) {
 					session.getMIInferior().setSuspended();
-					e = new MIStoppedEvent(exec.getToken());
+					e = new MIStoppedEvent(exec);
 					list.add(e);
 				}
 			}
Index: src/org/eclipse/cdt/debug/mi/core/event/MIBreakpointEvent.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/event/MIBreakpointEvent.java,v
retrieving revision 1.6
diff -u -r1.6 MIBreakpointEvent.java
--- src/org/eclipse/cdt/debug/mi/core/event/MIBreakpointEvent.java	26 Oct 2002 20:25:39 -0000	1.6
+++ src/org/eclipse/cdt/debug/mi/core/event/MIBreakpointEvent.java	29 Nov 2002 18:51:28 -0000
@@ -20,21 +20,15 @@
 public class MIBreakpointEvent extends MIStoppedEvent {
 
 	int bkptno;
-	int threadId;
 	MIFrame frame;
 
-	MIExecAsyncOutput exec;
-	MIResultRecord rr;
-
 	public MIBreakpointEvent(MIExecAsyncOutput record) {
-		super(record.getToken());
-		exec = record;
+		super(record);
 		parse();
 	}
 
 	public MIBreakpointEvent(MIResultRecord record) {
-		super(record.getToken());
-		rr = record;
+		super(record);
 		parse();
 	}
 
@@ -42,10 +36,6 @@
 		return bkptno;
 	}
 
-	public int getThreadId() {
-		return threadId;
-	}
-
 	public MIFrame getMIFrame() {
 		return frame;
 	}
@@ -53,13 +43,15 @@
 	public String toString() {
 		StringBuffer buffer = new StringBuffer();
 		buffer.append("number=").append(bkptno).append('\n');
-		buffer.append("thread-id=").append(threadId).append('\n');
+		buffer.append("thread-id=").append(getThreadId()).append('\n');
 		buffer.append(frame.toString());
 		return buffer.toString();
 	}
 
 	void parse () {
 		MIResult[] results = null;
+		MIExecAsyncOutput exec = getMIExecAsyncOutput();
+		MIResultRecord rr = getMIResultRecord();
 		if (exec != null) {
 			results = exec.getMIResults();
 		} else if (rr != null) {
@@ -81,7 +73,8 @@
 					}
 				} else if (var.equals("thread-id")) {
 					try {
-						threadId = Integer.parseInt(str.trim());
+						int id = Integer.parseInt(str.trim());
+						setThreadId(id);
 					} catch (NumberFormatException e) {
 					}
 				} else if (var.equals("frame")) {
Index: src/org/eclipse/cdt/debug/mi/core/event/MIFunctionFinishedEvent.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/event/MIFunctionFinishedEvent.java,v
retrieving revision 1.4
diff -u -r1.4 MIFunctionFinishedEvent.java
--- src/org/eclipse/cdt/debug/mi/core/event/MIFunctionFinishedEvent.java	26 Oct 2002 20:26:09 -0000	1.4
+++ src/org/eclipse/cdt/debug/mi/core/event/MIFunctionFinishedEvent.java	29 Nov 2002 18:51:28 -0000
@@ -20,21 +20,14 @@
 
 	String gdbResult = "";
 	String returnValue = "";
-	int threadId;
-	MIFrame frame;
-
-	MIExecAsyncOutput exec;
-	MIResultRecord rr;
 
 	public MIFunctionFinishedEvent(MIExecAsyncOutput async) {
-		super(async.getToken());
-		exec = async;
+		super(async);
 		parse();
 	}
 
 	public MIFunctionFinishedEvent(MIResultRecord record) {
-		super(record.getToken());
-		rr = record;
+		super(record);
 		parse();
 	}
 
@@ -46,24 +39,22 @@
 		return returnValue;
 	}
 
-	public int getThreadId() {
-		return threadId;
-	}
-
-	public MIFrame getFrame() {
-		return frame;
-	}
-
 	public String toString() {
 		StringBuffer buffer = new StringBuffer();
 		buffer.append("gdb-result-var=" + gdbResult + "\n");;
 		buffer.append("return-value=" + returnValue + "\n");
-		buffer.append("thread-id=").append(threadId).append('\n');
-		buffer.append(frame.toString());
+		buffer.append("thread-id=").append(getThreadId()).append('\n');
+		MIFrame f = getFrame();
+		if (f != null) {
+			buffer.append(f.toString());
+		}
 		return buffer.toString();
 	}
 
 	void parse () {
+		MIExecAsyncOutput exec = getMIExecAsyncOutput();
+		MIResultRecord rr = getMIResultRecord();
+
 		MIResult[] results = null;
 		if (exec != null) {
 			results = exec.getMIResults();
@@ -85,12 +76,14 @@
 					returnValue = str;
 				} else if (var.equals("thread-id")) {
 					try {
-						threadId = Integer.parseInt(str.trim());
+						int id = Integer.parseInt(str.trim());
+						setThreadId(id);
 					} catch (NumberFormatException e) {
 					}
 				} else if (var.equals("frame")) {
 					if (value instanceof MITuple) {
-						frame = new MIFrame((MITuple)value);
+						MIFrame f = new MIFrame((MITuple)value);
+						setFrame(f);
 					}
 				}
 			}
Index: src/org/eclipse/cdt/debug/mi/core/event/MILocationReachedEvent.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/event/MILocationReachedEvent.java,v
retrieving revision 1.4
diff -u -r1.4 MILocationReachedEvent.java
--- src/org/eclipse/cdt/debug/mi/core/event/MILocationReachedEvent.java	26 Oct 2002 20:26:27 -0000	1.4
+++ src/org/eclipse/cdt/debug/mi/core/event/MILocationReachedEvent.java	29 Nov 2002 18:51:28 -0000
@@ -18,41 +18,31 @@
  */
 public class MILocationReachedEvent extends MIStoppedEvent {
 
-	int threadId;
-	MIFrame frame;
-
-	MIExecAsyncOutput exec;
-	MIResultRecord rr;
-
 	public MILocationReachedEvent(MIExecAsyncOutput async) {
-		super(async.getToken());
-		exec = async;
+		super(async);
 		parse();
 	}
 
 	public MILocationReachedEvent(MIResultRecord record) {
-		super(record.getToken());
-		rr = record;
+		super(record);
 		parse();
 	}
 
-	public int getThreadId() {
-		return threadId;
-	}
-
-	public MIFrame getFrame() {
-		return frame;
-	}
-
 	public String toString() {
 		StringBuffer buffer = new StringBuffer();
-		buffer.append("thread-id=").append(threadId).append('\n');
-		buffer.append(frame.toString());
+		buffer.append("thread-id=").append(getThreadId()).append('\n');
+		MIFrame f = getFrame();
+		if (f != null) {
+			buffer.append(f.toString());
+		}
 		return buffer.toString();
 	}
 
 	void parse () {
 		MIResult[] results = null;
+		MIExecAsyncOutput exec = getMIExecAsyncOutput();
+		MIResultRecord rr = getMIResultRecord();
+
 		if (exec != null) {
 			results = exec.getMIResults();
 		} else if (rr != null) {
@@ -69,12 +59,14 @@
 
 				if (var.equals("thread-id")) {
 					try {
-						threadId = Integer.parseInt(str.trim());
+						int id = Integer.parseInt(str.trim());
+						setThreadId(id);
 					} catch (NumberFormatException e) {
 					}
 				} else if (var.equals("frame")) {
 					if (value instanceof MITuple) {
-						frame = new MIFrame((MITuple)value);
+						MIFrame f = new MIFrame((MITuple)value);
+						setFrame(f);
 					}
 				}
 			}
Index: src/org/eclipse/cdt/debug/mi/core/event/MISignalEvent.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/event/MISignalEvent.java,v
retrieving revision 1.5
diff -u -r1.5 MISignalEvent.java
--- src/org/eclipse/cdt/debug/mi/core/event/MISignalEvent.java	26 Oct 2002 20:26:51 -0000	1.5
+++ src/org/eclipse/cdt/debug/mi/core/event/MISignalEvent.java	29 Nov 2002 18:51:28 -0000
@@ -21,21 +21,14 @@
 
 	String sigName = "";
 	String sigMeaning = "";
-	int threadId;
-	MIFrame frame;
-
-	MIExecAsyncOutput exec;
-	MIResultRecord rr;
 
 	public MISignalEvent(MIExecAsyncOutput async) {
-		super(async.getToken());
-		exec = async;
+		super(async);
 		parse();
 	}
 
 	public MISignalEvent(MIResultRecord record) {
-		super(record.getToken());
-		rr = record;
+		super(record);
 		parse();
 	}
 
@@ -47,25 +40,22 @@
 		return sigMeaning;
 	}
 
-
-	public int getThreadId() {
-		return threadId;
-	}
-
-	public MIFrame getFrame() {
-		return frame;
-	}
-
 	public String toString() {
 		StringBuffer buffer = new StringBuffer();
 		buffer.append("signal-name=" + sigName + "\n");;
 		buffer.append("signal-meaning=" + sigMeaning + "\n");;
-		buffer.append("thread-id=").append(threadId).append('\n');
-		buffer.append(frame.toString());
+		buffer.append("thread-id=").append(getThreadId()).append('\n');
+		MIFrame f = getFrame();
+		if (f != null) {
+			buffer.append(f.toString());
+		}
 		return buffer.toString();
 	}
 
 	void parse () {
+		MIExecAsyncOutput exec = getMIExecAsyncOutput();
+		MIResultRecord rr = getMIResultRecord();
+
 		MIResult[] results = null;
 		if (exec != null) {
 			results = exec.getMIResults();
@@ -87,12 +77,14 @@
 					sigMeaning = str;
 				} else if (var.equals("thread-id")) {
 					try {
-						threadId = Integer.parseInt(str.trim());
+						int id = Integer.parseInt(str.trim());
+						setThreadId(id);
 					} catch (NumberFormatException e) {
 					}
 				} else if (var.equals("frame")) {
 					if (value instanceof MITuple) {
-						frame = new MIFrame((MITuple)value);
+						MIFrame f = new MIFrame((MITuple)value);
+						setFrame(f);
 					}
 				}
 			}
Index: src/org/eclipse/cdt/debug/mi/core/event/MISteppingRangeEvent.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/event/MISteppingRangeEvent.java,v
retrieving revision 1.4
diff -u -r1.4 MISteppingRangeEvent.java
--- src/org/eclipse/cdt/debug/mi/core/event/MISteppingRangeEvent.java	26 Oct 2002 20:26:57 -0000	1.4
+++ src/org/eclipse/cdt/debug/mi/core/event/MISteppingRangeEvent.java	29 Nov 2002 18:51:28 -0000
@@ -19,41 +19,30 @@
  */
 public class MISteppingRangeEvent extends MIStoppedEvent {
 
-	int threadId;
-	MIFrame frame;
-
-	MIExecAsyncOutput exec;
-	MIResultRecord rr;
-
 	public MISteppingRangeEvent(MIExecAsyncOutput async) {
-		super(async.getToken());
-		exec = async;
+		super(async);
 		parse();
 	}
 
 	public MISteppingRangeEvent(MIResultRecord record) {
-		super(record.getToken());
-		rr = record;
+		super(record);
 		parse();
 	}
 
-	public int getThreadId() {
-		return threadId;
-	}
-
-	public MIFrame getMIFrame() {
-		return frame;
-	}
-
 	public String toString() {
 		StringBuffer buffer = new StringBuffer();
-		buffer.append("thread-id=").append(threadId).append('\n');
-		buffer.append(frame.toString());
+		buffer.append("thread-id=").append(getThreadId()).append('\n');
+		MIFrame f = getFrame();
+		if (f != null) {
+			buffer.append(getFrame().toString());
+		}
 		return buffer.toString();
 	}
 
 	void parse () {
 		MIResult[] results = null;
+		MIExecAsyncOutput exec = getMIExecAsyncOutput();
+		MIResultRecord rr = getMIResultRecord();
 		if (exec != null) {
 			results = exec.getMIResults();
 		} else if (rr != null) {
@@ -68,13 +57,15 @@
 					if (value instanceof MIConst) {
 						String str = ((MIConst)value).getString();
 						try {
-							threadId = Integer.parseInt(str.trim());
+							int id = Integer.parseInt(str.trim());
+							setThreadId(id);
 						} catch (NumberFormatException e) {
 						}
 					}
 				} else if (var.equals("frame")) {
 					if (value instanceof MITuple) {
-						frame = new MIFrame((MITuple)value);
+						MIFrame f = new MIFrame((MITuple)value);
+						setFrame(f);
 					}
 				}
 			}
Index: src/org/eclipse/cdt/debug/mi/core/event/MIStoppedEvent.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/event/MIStoppedEvent.java,v
retrieving revision 1.3
diff -u -r1.3 MIStoppedEvent.java
--- src/org/eclipse/cdt/debug/mi/core/event/MIStoppedEvent.java	26 Oct 2002 20:27:04 -0000	1.3
+++ src/org/eclipse/cdt/debug/mi/core/event/MIStoppedEvent.java	29 Nov 2002 18:51:28 -0000
@@ -5,6 +5,14 @@
  */
 package org.eclipse.cdt.debug.mi.core.event;
 
+import org.eclipse.cdt.debug.mi.core.output.MIConst;
+import org.eclipse.cdt.debug.mi.core.output.MIExecAsyncOutput;
+import org.eclipse.cdt.debug.mi.core.output.MIFrame;
+import org.eclipse.cdt.debug.mi.core.output.MIResult;
+import org.eclipse.cdt.debug.mi.core.output.MIResultRecord;
+import org.eclipse.cdt.debug.mi.core.output.MITuple;
+import org.eclipse.cdt.debug.mi.core.output.MIValue;
+
 
 
 /**
@@ -13,7 +21,77 @@
  */
 public class MIStoppedEvent extends MIEvent {
 
-	public MIStoppedEvent(int token) {
-		super(token);
+	private int threadId;
+	private MIFrame frame;
+	private MIExecAsyncOutput exec;
+	private MIResultRecord rr;
+
+	public MIStoppedEvent(MIExecAsyncOutput record) {
+		super(record.getToken());
+		exec = record;
+		parse();
+	}
+
+	public MIStoppedEvent(MIResultRecord record) {
+		super(record.getToken());
+		rr = record;
+		parse();
+	}
+	
+//	public MIStoppedEvent(int token) {
+//		super(token);
+//	}
+
+	public int getThreadId() {
+		return threadId;
+	}
+
+	public void setThreadId(int id) {
+		threadId = id;
+	}
+
+	public MIFrame getFrame() {
+		return frame;
+	}
+
+	public void setFrame(MIFrame f) {
+		frame = f;
+	}
+
+	public MIExecAsyncOutput getMIExecAsyncOutput() {
+		return exec;
+	}
+
+	public MIResultRecord getMIResultRecord() {
+		return rr;
+	}
+	
+	void parse () {
+		MIResult[] results = null;
+		if (exec != null) {
+			results = exec.getMIResults();
+		} else if (rr != null) {
+			results = rr.getMIResults();
+		}
+		if (results != null) {
+			for (int i = 0; i < results.length; i++) {
+				String var = results[i].getVariable();
+				MIValue value = results[i].getMIValue();
+
+				if (var.equals("thread-id")) {
+					if (value instanceof MIConst) {
+						String str = ((MIConst)value).getString();
+						try {
+							threadId = Integer.parseInt(str.trim());
+						} catch (NumberFormatException e) {
+						}
+					}
+				} else if (var.equals("frame")) {
+					if (value instanceof MITuple) {
+						frame = new MIFrame((MITuple)value);
+					}
+				}
+			}
+		}
 	}
 }
Index: src/org/eclipse/cdt/debug/mi/core/event/MIWatchpointScopeEvent.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/event/MIWatchpointScopeEvent.java,v
retrieving revision 1.2
diff -u -r1.2 MIWatchpointScopeEvent.java
--- src/org/eclipse/cdt/debug/mi/core/event/MIWatchpointScopeEvent.java	26 Oct 2002 20:27:21 -0000	1.2
+++ src/org/eclipse/cdt/debug/mi/core/event/MIWatchpointScopeEvent.java	29 Nov 2002 18:51:28 -0000
@@ -20,21 +20,14 @@
 public class MIWatchpointScopeEvent extends MIStoppedEvent {
 
 	int number;
-	int threadId;
-	MIFrame frame;
-
-	MIExecAsyncOutput exec;
-	MIResultRecord rr;
 
 	public MIWatchpointScopeEvent(MIExecAsyncOutput async) {
-		super(async.getToken());
-		exec = async;
+		super(async);
 		parse();
 	}
 
 	public MIWatchpointScopeEvent(MIResultRecord record) {
-		super(record.getToken());
-		rr = record;
+		super(record);
 		parse();
 	}
 
@@ -42,15 +35,10 @@
 		return number;
 	}
 
-	public int getThreadId() {
-		return threadId;
-	}
-
-	public MIFrame getFrame() {
-		return frame;
-	}
-
 	void parse() {
+		MIExecAsyncOutput exec = getMIExecAsyncOutput();
+		MIResultRecord rr = getMIResultRecord();
+
 		MIResult[] results = null;
 		if (exec != null) {
 			results = exec.getMIResults();
@@ -74,13 +62,15 @@
 					if (value instanceof MIConst) {
 						String str = ((MIConst) value).getString();
 						try {
-							threadId = Integer.parseInt(str.trim());
+							int id = Integer.parseInt(str.trim());
+							setThreadId(id);
 						} catch (NumberFormatException e) {
 						}
 					}
 				} else if (var.equals("frame")) {
 					if (value instanceof MITuple) {
-						frame = new MIFrame((MITuple) value);
+						MIFrame f = new MIFrame((MITuple) value);
+						setFrame(f);
 					}
 				}
 			}
Index: src/org/eclipse/cdt/debug/mi/core/event/MIWatchpointTriggerEvent.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/event/MIWatchpointTriggerEvent.java,v
retrieving revision 1.2
diff -u -r1.2 MIWatchpointTriggerEvent.java
--- src/org/eclipse/cdt/debug/mi/core/event/MIWatchpointTriggerEvent.java	26 Oct 2002 20:27:28 -0000	1.2
+++ src/org/eclipse/cdt/debug/mi/core/event/MIWatchpointTriggerEvent.java	29 Nov 2002 18:51:28 -0000
@@ -23,21 +23,14 @@
 	String exp = "";
 	String oldValue = "";
 	String newValue = "";
-	int threadId;
-	MIFrame frame;
-
-	MIExecAsyncOutput exec;
-	MIResultRecord rr;
 
 	public MIWatchpointTriggerEvent(MIExecAsyncOutput async) {
-		super(async.getToken());
-		exec = async;
+		super(async);
 		parse();
 	}
 
 	public MIWatchpointTriggerEvent(MIResultRecord record) {
-		super(record.getToken());
-		rr = record;
+		super(record);
 		parse();
 	}
 
@@ -57,13 +50,6 @@
 		return newValue;
 	}
 
-	public int getThreadId() {
-		return threadId;
-	}
-
-	public MIFrame getFrame() {
-		return frame;
-	}
 
 	public String toString() {
 		StringBuffer buffer = new StringBuffer();
@@ -72,13 +58,18 @@
 		;
 		buffer.append("old=" + oldValue + "\n");
 		buffer.append("new=" + newValue + "\n");
-		buffer.append("thread-id=").append(threadId).append('\n');
-		buffer.append(frame.toString());
+		buffer.append("thread-id=").append(getThreadId()).append('\n');
+		MIFrame f = getFrame();
+		if (f != null) {
+			buffer.append(f.toString());
+		}
 		return buffer.toString();
 	}
 
 	void parse() {
 		MIResult[] results = null;
+		MIExecAsyncOutput exec = getMIExecAsyncOutput();
+		MIResultRecord rr = getMIResultRecord();
 		if (exec != null) {
 			results = exec.getMIResults();
 		} else if (rr != null) {
@@ -101,13 +92,15 @@
 					if (value instanceof MIConst) {
 						String str = ((MIConst) value).getString();
 						try {
-							threadId = Integer.parseInt(str.trim());
+							int id = Integer.parseInt(str.trim());
+							setThreadId(id);
 						} catch (NumberFormatException e) {
 						}
 					}
 				} else if (var.equals("frame")) {
 					if (value instanceof MITuple) {
-						frame = new MIFrame((MITuple) value);
+						MIFrame f = new MIFrame((MITuple) value);
+						setFrame(f);
 					}
 				}
 			}



Back to the top