Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[cdt-patch] Refactoring BreakPoint --> Breakpoint

Index: ChangeLog
===================================================================
RCS file: /home/tools/org.eclipse.cdt.debug.mi.core/ChangeLog,v
retrieving revision 1.54
diff -u -r1.54 ChangeLog
--- ChangeLog	8 Jan 2003 17:46:57 -0000	1.54
+++ ChangeLog	8 Jan 2003 21:32:36 -0000
@@ -1,5 +1,33 @@
 2003-01-08 Alain Magloire
 
+	Refactoring madness: the docs folks pointed out
+	that "Breakpoint" is one word and shoud be spelled
+	"Breakpoint" not "BreakPoint".  Cleaning this to be
+	consistent, gave me the opportunity to test the refactoring
+	capability of the JDT. ... Very good 8-).
+
+	* src/.../mi/core/cdi/Breakpoint.java:
+	* src/.../mi/core/cdi/BreakpointHit.java:
+	* src/.../mi/core/cdi/BreakpointManager.java:
+	* src/.../mi/core/cdi/Catchpoint.java:
+	* src/.../mi/core/cdi/ChangedEvent.java:
+	* src/.../mi/core/cdi/CreatedEvent.java:
+	* src/.../mi/core/cdi/DestroyedEvent.java:
+	* src/.../mi/core/cdi/EventManager.java:
+	* src/.../mi/core/cdi/SuspendedManager.java:
+	* src/.../mi/core/cdi/Watchpoint.java:
+	* src/.../mi/core/event/MIBreakpointChangedEvent.java:
+	* src/.../mi/core/event/MIBreakpointDeletedEvent.java:
+	* src/.../mi/core/event/MIBreakpointCreatedEvent.java:
+	* src/.../mi/core/event/MIBreakpointHitEvent.java:
+	* src/.../mi/core/output/MIBreakInsertInfo.java:
+	* src/.../mi/core/output/MIBreakListInfo.java:
+	* src/.../mi/core/output/MIBreakpoint.java:
+	* src/.../mi/core/CLIProcessor.java:
+	* src/.../mi/core/RxThread.java:
+
+2003-01-08 Alain Magloire
+
 	* src/.../mi/core/cdi/EventManager.java (update): bug fix
 	was calling DestroedEvent() incorrectly.
 
Index: src/org/eclipse/cdt/debug/mi/core/CLIProcessor.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/CLIProcessor.java,v
retrieving revision 1.1
diff -u -r1.1 CLIProcessor.java
--- src/org/eclipse/cdt/debug/mi/core/CLIProcessor.java	8 Jan 2003 15:43:53 -0000	1.1
+++ src/org/eclipse/cdt/debug/mi/core/CLIProcessor.java	8 Jan 2003 21:32:36 -0000
@@ -6,7 +6,7 @@
 package org.eclipse.cdt.debug.mi.core;
  
 import org.eclipse.cdt.debug.mi.core.command.CLICommand;
-import org.eclipse.cdt.debug.mi.core.event.MIBreakPointChangedEvent;
+import org.eclipse.cdt.debug.mi.core.event.MIBreakpointChangedEvent;
 import org.eclipse.cdt.debug.mi.core.event.MIEvent;
 import org.eclipse.cdt.debug.mi.core.event.MIRunningEvent;
 
@@ -44,10 +44,12 @@
 			session.getMIInferior().setRunning();
 			MIEvent event = new MIRunningEvent(cmd.getToken(), type);
 			session.fireEvent(event);
-		} else if (isSettingBreakpoint(operation)) {
-			session.fireEvent(new MIBreakPointChangedEvent(0));
-		} else if (isSettingWatchpoint(operation)) {
-		} else if (isDeletingBreakpoint(operation)) {
+		} else if (isSettingBreakpoint(operation) ||
+				   isSettingWatchpoint(operation) ||
+				   isDeletingBreakpoint(operation)) {
+			// We know something change, we just do not know what.
+			// So the easiest way is to let the top layer handle it. 
+			session.fireEvent(new MIBreakpointChangedEvent(0));
 		}
 	}
 
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.41
diff -u -r1.41 RxThread.java
--- src/org/eclipse/cdt/debug/mi/core/RxThread.java	2 Jan 2003 21:45:40 -0000	1.41
+++ src/org/eclipse/cdt/debug/mi/core/RxThread.java	8 Jan 2003 21:32:36 -0000
@@ -18,7 +18,7 @@
 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.event.MIBreakpointEvent;
+import org.eclipse.cdt.debug.mi.core.event.MIBreakpointHitEvent;
 import org.eclipse.cdt.debug.mi.core.event.MIErrorEvent;
 import org.eclipse.cdt.debug.mi.core.event.MIEvent;
 import org.eclipse.cdt.debug.mi.core.event.MIFunctionFinishedEvent;
@@ -324,9 +324,9 @@
 		MIEvent event = null;
 		if ("breakpoint-hit".equals(reason)) {
 			if (exec != null) {
-				event = new MIBreakpointEvent(exec);
+				event = new MIBreakpointHitEvent(exec);
 			} else if (rr != null) {
-				event = new MIBreakpointEvent(rr);
+				event = new MIBreakpointHitEvent(rr);
 			}
 			session.getMIInferior().setSuspended();
 		} else if ("watchpoint-trigger".equals(reason) ||
Index: src/org/eclipse/cdt/debug/mi/core/cdi/Breakpoint.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/cdi/Breakpoint.java,v
retrieving revision 1.9
diff -u -r1.9 Breakpoint.java
--- src/org/eclipse/cdt/debug/mi/core/cdi/Breakpoint.java	3 Sep 2002 03:59:42 -0000	1.9
+++ src/org/eclipse/cdt/debug/mi/core/cdi/Breakpoint.java	8 Jan 2003 21:32:37 -0000
@@ -8,7 +8,7 @@
 import org.eclipse.cdt.debug.core.cdi.ICDICondition;
 import org.eclipse.cdt.debug.core.cdi.ICDILocation;
 import org.eclipse.cdt.debug.core.cdi.model.ICDILocationBreakpoint;
-import org.eclipse.cdt.debug.mi.core.output.MIBreakPoint;
+import org.eclipse.cdt.debug.mi.core.output.MIBreakpoint;
 
 /**
  */
@@ -16,17 +16,17 @@
 
 	ICDILocation location;
 	ICDICondition condition;
-	MIBreakPoint miBreakPoint;
+	MIBreakpoint miBreakpoint;
 	BreakpointManager mgr;
 
-	public Breakpoint(BreakpointManager m, MIBreakPoint miBreak) {
+	public Breakpoint(BreakpointManager m, MIBreakpoint miBreak) {
 		super(m.getCSession().getCTarget());
-		miBreakPoint = miBreak;
+		miBreakpoint = miBreak;
 		mgr = m;
 	}
 
-	MIBreakPoint getMIBreakPoint() {
-		return miBreakPoint;
+	MIBreakpoint getMIBreakpoint() {
+		return miBreakpoint;
 	}
 	
 	/**
@@ -34,8 +34,8 @@
 	 */
 	public ICDICondition getCondition() throws CDIException {
 		if (condition == null) {
-			condition =  new Condition(miBreakPoint.getIgnoreCount(),
-				miBreakPoint.getWhat());
+			condition =  new Condition(miBreakpoint.getIgnoreCount(),
+				miBreakpoint.getWhat());
 		}
 		return condition;
 	}
@@ -44,28 +44,28 @@
 	 * @see org.eclipse.cdt.debug.core.cdi.ICDIBreakpoint#getThreadId()
 	 */
 	public String getThreadId() throws CDIException {
-		return miBreakPoint.getThreadId();
+		return miBreakpoint.getThreadId();
 	}
 
 	/**
 	 * @see org.eclipse.cdt.debug.core.cdi.ICDIBreakpoint#isEnabled()
 	 */
 	public boolean isEnabled() throws CDIException {
-		return miBreakPoint.isEnabled();
+		return miBreakpoint.isEnabled();
 	}
 
 	/**
 	 * @see org.eclipse.cdt.debug.core.cdi.ICDIBreakpoint#isHardware()
 	 */
 	public boolean isHardware() {
-		return miBreakPoint.isHardware();
+		return miBreakpoint.isHardware();
 	}
 
 	/**
 	 * @see org.eclipse.cdt.debug.core.cdi.ICDIBreakpoint#isTemporary()
 	 */
 	public boolean isTemporary() {
-		return miBreakPoint.isTemporary();
+		return miBreakpoint.isTemporary();
 	}
 
 	/**
@@ -94,10 +94,10 @@
 	 */
 	public ICDILocation getLocation() throws CDIException {
 		if (location == null) {
-			location = new Location (miBreakPoint.getFile(),
-					miBreakPoint.getFunction(),
-					miBreakPoint.getLine(),
-					miBreakPoint.getAddress());
+			location = new Location (miBreakpoint.getFile(),
+					miBreakpoint.getFunction(),
+					miBreakpoint.getLine(),
+					miBreakpoint.getAddress());
 		}
 		return location;
 	}
Index: src/org/eclipse/cdt/debug/mi/core/cdi/BreakpointHit.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/cdi/BreakpointHit.java,v
retrieving revision 1.2
diff -u -r1.2 BreakpointHit.java
--- src/org/eclipse/cdt/debug/mi/core/cdi/BreakpointHit.java	28 Aug 2002 01:43:12 -0000	1.2
+++ src/org/eclipse/cdt/debug/mi/core/cdi/BreakpointHit.java	8 Jan 2003 21:32:37 -0000
@@ -7,15 +7,15 @@
 
 import org.eclipse.cdt.debug.core.cdi.ICDIBreakpointHit;
 import org.eclipse.cdt.debug.core.cdi.model.ICDIBreakpoint;
-import org.eclipse.cdt.debug.mi.core.event.MIBreakpointEvent;
+import org.eclipse.cdt.debug.mi.core.event.MIBreakpointHitEvent;
 
 /**
  */
 public class BreakpointHit extends SessionObject implements ICDIBreakpointHit {
 
-	MIBreakpointEvent breakEvent;
+	MIBreakpointHitEvent breakEvent;
 
-	public BreakpointHit(CSession session, MIBreakpointEvent e) {
+	public BreakpointHit(CSession session, MIBreakpointHitEvent e) {
 		super(session);
 		breakEvent = e;
 	}
Index: src/org/eclipse/cdt/debug/mi/core/cdi/BreakpointManager.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/cdi/BreakpointManager.java,v
retrieving revision 1.24
diff -u -r1.24 BreakpointManager.java
--- src/org/eclipse/cdt/debug/mi/core/cdi/BreakpointManager.java	8 Jan 2003 15:41:13 -0000	1.24
+++ src/org/eclipse/cdt/debug/mi/core/cdi/BreakpointManager.java	8 Jan 2003 21:32:37 -0000
@@ -28,18 +28,18 @@
 import org.eclipse.cdt.debug.mi.core.command.MIBreakInsert;
 import org.eclipse.cdt.debug.mi.core.command.MIBreakList;
 import org.eclipse.cdt.debug.mi.core.command.MIBreakWatch;
-import org.eclipse.cdt.debug.mi.core.event.MIBreakPointChangedEvent;
-import org.eclipse.cdt.debug.mi.core.event.MIBreakPointCreatedEvent;
-import org.eclipse.cdt.debug.mi.core.event.MIBreakPointDeletedEvent;
+import org.eclipse.cdt.debug.mi.core.event.MIBreakpointChangedEvent;
+import org.eclipse.cdt.debug.mi.core.event.MIBreakpointCreatedEvent;
+import org.eclipse.cdt.debug.mi.core.event.MIBreakpointDeletedEvent;
 import org.eclipse.cdt.debug.mi.core.event.MIEvent;
 import org.eclipse.cdt.debug.mi.core.output.MIBreakInsertInfo;
 import org.eclipse.cdt.debug.mi.core.output.MIBreakListInfo;
-import org.eclipse.cdt.debug.mi.core.output.MIBreakPoint;
+import org.eclipse.cdt.debug.mi.core.output.MIBreakpoint;
 import org.eclipse.cdt.debug.mi.core.output.MIBreakWatchInfo;
 import org.eclipse.cdt.debug.mi.core.output.MIInfo;
 
 /**
- *
+ * Breakpoint Manager for the CDI interface.
  */
 public class BreakpointManager extends SessionObject implements ICDIBreakpointManager {
 
@@ -54,7 +54,7 @@
 		allowInterrupt = true;
 	}
 
-	public MIBreakPoint[] getMIBreakpoints() throws CDIException {
+	public MIBreakpoint[] getMIBreakpoints() throws CDIException {
 		CSession s = getCSession();
 		CommandFactory factory = s.getMISession().getCommandFactory();
 		MIBreakList breakpointList = factory.createMIBreakList();
@@ -64,35 +64,39 @@
 			if (info == null) {
 				throw new CDIException("No answer");
 			}
-			return info.getBreakPoints();
+			return info.getMIBreakpoints();
 		} catch (MIException e) {
 			throw new MI2CDIException(e);
 		}
 	}
 
 	void update() throws CDIException {
-		MIBreakPoint[] newMIBreakPoints = getMIBreakpoints();
-		List eventList = new ArrayList(newMIBreakPoints.length);
-		for (int i = 0; i < newMIBreakPoints.length; i++) {
-			int no = newMIBreakPoints[i].getNumber();
+		MIBreakpoint[] newMIBreakpoints = getMIBreakpoints();
+		List eventList = new ArrayList(newMIBreakpoints.length);
+		for (int i = 0; i < newMIBreakpoints.length; i++) {
+			int no = newMIBreakpoints[i].getNumber();
 			if (containsBreakpoint(no)) {
-				if (hasBreakpointChanged(newMIBreakPoints[i])) {
+				if (hasBreakpointChanged(newMIBreakpoints[i])) {
 					// Fire ChangedEvent
-					eventList.add(new MIBreakPointChangedEvent(no)); 
+					eventList.add(new MIBreakpointChangedEvent(no)); 
 				}
 			} else {
-				// add the new breakpoint and fire create event
-				breakList.add(new Breakpoint(this, newMIBreakPoints[i]));
-				eventList.add(new MIBreakPointCreatedEvent(no)); 
+				// add the new breakpoint and fire CreatedEvent
+				if (newMIBreakpoints[i].isWatchpoint()) {
+					breakList.add(new Watchpoint(this, newMIBreakpoints[i]));
+				} else {
+					breakList.add(new Breakpoint(this, newMIBreakpoints[i]));
+				}
+				eventList.add(new MIBreakpointCreatedEvent(no)); 
 			}
 		}
 		// Check if any breakpoint was removed.
 		Breakpoint[] oldBreakpoints = listBreakpoints();
 		for (int i = 0; i < oldBreakpoints.length; i++) {
 			boolean found = false;
-			int no = oldBreakpoints[i].getMIBreakPoint().getNumber();
-			for (int j = 0; j < newMIBreakPoints.length; j++) {
-				if (no == newMIBreakPoints[i].getNumber()) {
+			int no = oldBreakpoints[i].getMIBreakpoint().getNumber();
+			for (int j = 0; j < newMIBreakpoints.length; j++) {
+				if (no == newMIBreakpoints[i].getNumber()) {
 					found = true;
 					break;
 				}
@@ -101,7 +105,7 @@
 				// Fire destroyed Events.
 				breakList.remove(oldBreakpoints[i]);
 				delList.add(oldBreakpoints[i]);
-				eventList.add(new MIBreakPointDeletedEvent(no)); 
+				eventList.add(new MIBreakpointDeletedEvent(no)); 
 			}
 		}
 		MISession mi = getCSession().getMISession();
@@ -113,7 +117,7 @@
 		return (getBreakpoint(number) != null);
 	}
 
-	boolean hasBreakpointChanged(MIBreakPoint miBreakPoint) {
+	boolean hasBreakpointChanged(MIBreakpoint miBreakpoint) {
 		return false;
 	}
 
@@ -122,7 +126,7 @@
 		for (int i = 0; i < bkpts.length; i++) {
 			if (bkpts[i] instanceof Breakpoint) {
 				Breakpoint point = (Breakpoint) bkpts[i];
-				MIBreakPoint miBreak = point.getMIBreakPoint();
+				MIBreakpoint miBreak = point.getMIBreakpoint();
 				if (miBreak.getNumber() == number) {
 					return point;
 				}
@@ -194,7 +198,7 @@
 			if (breakpoints[i] instanceof Breakpoint
 				&& breakList.contains(breakpoints[i])) {
 				numbers[i] =
-					((Breakpoint) breakpoints[i]).getMIBreakPoint().getNumber();
+					((Breakpoint) breakpoints[i]).getMIBreakpoint().getNumber();
 			} else {
 				throw new CDIException("Not a CDT breakpoint");
 			}
@@ -218,8 +222,8 @@
 		for (int i = 0; i < breakpoints.length; i++) {
 			breakList.remove(breakpoints[i]);
 			delList.add(breakpoints[i]);
-			int no = ((Breakpoint)breakpoints[i]).getMIBreakPoint().getNumber();
-			eventList.add(new MIBreakPointDeletedEvent(no));
+			int no = ((Breakpoint)breakpoints[i]).getMIBreakpoint().getNumber();
+			eventList.add(new MIBreakpointDeletedEvent(no));
 		}
 		MISession mi = s.getMISession();
 		MIEvent[] events = (MIEvent[])eventList.toArray(new MIEvent[0]);
@@ -230,7 +234,7 @@
 		Breakpoint point = null;
 		Breakpoint[] points = (Breakpoint[])delList.toArray(new Breakpoint[delList.size()]);
 		for (int i = 0; i < points.length; i++) {
-			if (points[i].getMIBreakPoint().getNumber() == no) {
+			if (points[i].getMIBreakpoint().getNumber() == no) {
 				delList.remove(points[i]);
 				point = points[i];
 				break;
@@ -243,7 +247,7 @@
 		int number = 0;
 		if (breakpoint instanceof Breakpoint
 			&& breakList.contains(breakpoint)) {
-			number = ((Breakpoint) breakpoint).getMIBreakPoint().getNumber();
+			number = ((Breakpoint) breakpoint).getMIBreakpoint().getNumber();
 		} else {
 			throw new CDIException("Not a CDT breakpoint");
 		}
@@ -264,14 +268,14 @@
 			// Resume the program and enable events.
 			resumeInferior(state);
 		}
-		((Breakpoint) breakpoint).getMIBreakPoint().setEnabled(true);
+		((Breakpoint) breakpoint).getMIBreakpoint().setEnabled(true);
 	}
 
 	public void disableBreakpoint(ICDIBreakpoint breakpoint) throws CDIException {
 		int number = 0;
 		if (breakpoint instanceof Breakpoint
 			&& breakList.contains(breakpoint)) {
-			number = ((Breakpoint) breakpoint).getMIBreakPoint().getNumber();
+			number = ((Breakpoint) breakpoint).getMIBreakpoint().getNumber();
 		} else {
 			throw new CDIException("Not a CDT breakpoint");
 		}
@@ -291,14 +295,14 @@
 		} finally {
 			resumeInferior(state);
 		}
-		((Breakpoint) breakpoint).getMIBreakPoint().setEnabled(false);
+		((Breakpoint) breakpoint).getMIBreakpoint().setEnabled(false);
 	}
 
 	public void setCondition(ICDIBreakpoint breakpoint, ICDICondition condition) throws CDIException {
 		int number = 0;
 		if (breakpoint instanceof Breakpoint
 			&& breakList.contains(breakpoint)) {
-			number = ((Breakpoint) breakpoint).getMIBreakPoint().getNumber();
+			number = ((Breakpoint) breakpoint).getMIBreakpoint().getNumber();
 		} else {
 			throw new CDIException("Not a CDT breakpoint");
 		}
@@ -360,7 +364,7 @@
 //			if (info == null) {
 //				throw new CDIException("No answer");
 //			}
-//			MIBreakPoint[] miPoints = info.getBreakPoints();
+//			MIBreakpoint[] mipoints = info.getBreakpoints();
 //			for (int i = 0; i < miPoints.length; i++) {
 //				if (!containsBreakpoint(miPoints[i].getNumber())) {
 //					// FIXME: Generate a Create/Change Event??
@@ -423,14 +427,14 @@
 		MIBreakInsert breakInsert =
 			factory.createMIBreakInsert( temporary, hardware, exprCond,
 				ignoreCount, line.toString());
-		MIBreakPoint[] points = null;
+		MIBreakpoint[] points = null;
 		try {
 			s.getMISession().postCommand(breakInsert);
 			MIBreakInsertInfo info = breakInsert.getMIBreakInsertInfo();
 			if (info == null) {
 				throw new CDIException("No answer");
 			}
-			points = info.getBreakPoints();
+			points = info.getMIBreakpoints();
 			if (points == null || points.length == 0) {
 				throw new CDIException("Error parsing");
 			}
@@ -441,6 +445,10 @@
 		}
 		Breakpoint bkpt = new Breakpoint(this, points[0]);
 		breakList.add(bkpt);
+
+		// Fire a created Event.
+		MISession mi = s.getMISession();
+		mi.fireEvent(new MIBreakpointCreatedEvent(bkpt.getMIBreakpoint().getNumber()));
 		return bkpt;
 	}
 
@@ -458,11 +466,11 @@
 		CommandFactory factory = s.getMISession().getCommandFactory();
 		MIBreakWatch breakWatch =
 			factory.createMIBreakWatch(access, read, expression);
-		MIBreakPoint[] points = null;
+		MIBreakpoint[] points = null;
 		try {
 			s.getMISession().postCommand(breakWatch);
 			MIBreakWatchInfo info = breakWatch.getMIBreakWatchInfo();
-			points = info.getBreakPoints();
+			points = info.getMIBreakpoints();
 			if (info == null) {
 				throw new CDIException("No answer");
 			}
@@ -476,8 +484,13 @@
 		}
 		Watchpoint bkpt = new Watchpoint(this, points[0]);
 		breakList.add(bkpt);
+
+		// Fire a created Event.
+		MISession mi = s.getMISession();
+		mi.fireEvent(new MIBreakpointCreatedEvent(bkpt.getMIBreakpoint().getNumber()));
 		return bkpt;
 	}
+
 	/**
 	 * @see org.eclipse.cdt.debug.core.cdi.ICDIBreakpointManager#createCondition(int, String)
 	 */
@@ -498,6 +511,5 @@
 	public ICDILocation createLocation(long address) {
 		return new Location(address);
 	}
-
 
 }
Index: src/org/eclipse/cdt/debug/mi/core/cdi/Catchpoint.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/cdi/Catchpoint.java,v
retrieving revision 1.3
diff -u -r1.3 Catchpoint.java
--- src/org/eclipse/cdt/debug/mi/core/cdi/Catchpoint.java	27 Aug 2002 21:02:12 -0000	1.3
+++ src/org/eclipse/cdt/debug/mi/core/cdi/Catchpoint.java	8 Jan 2003 21:32:37 -0000
@@ -7,13 +7,13 @@
 import org.eclipse.cdt.debug.core.cdi.CDIException;
 import org.eclipse.cdt.debug.core.cdi.ICDICatchEvent;
 import org.eclipse.cdt.debug.core.cdi.model.ICDICatchpoint;
-import org.eclipse.cdt.debug.mi.core.output.MIBreakPoint;
+import org.eclipse.cdt.debug.mi.core.output.MIBreakpoint;
 
 /**
  */
 public class Catchpoint extends Breakpoint implements ICDICatchpoint {
 
-	public Catchpoint(BreakpointManager m, MIBreakPoint miBreak) {
+	public Catchpoint(BreakpointManager m, MIBreakpoint miBreak) {
 		super(m, miBreak);
 	}
 
Index: src/org/eclipse/cdt/debug/mi/core/cdi/ChangedEvent.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/cdi/ChangedEvent.java,v
retrieving revision 1.5
diff -u -r1.5 ChangedEvent.java
--- src/org/eclipse/cdt/debug/mi/core/cdi/ChangedEvent.java	8 Jan 2003 15:41:33 -0000	1.5
+++ src/org/eclipse/cdt/debug/mi/core/cdi/ChangedEvent.java	8 Jan 2003 21:32:37 -0000
@@ -8,7 +8,7 @@
 import org.eclipse.cdt.debug.core.cdi.event.ICDIChangedEvent;
 import org.eclipse.cdt.debug.core.cdi.model.ICDIBreakpoint;
 import org.eclipse.cdt.debug.core.cdi.model.ICDIObject;
-import org.eclipse.cdt.debug.mi.core.event.MIBreakPointChangedEvent;
+import org.eclipse.cdt.debug.mi.core.event.MIBreakpointChangedEvent;
 import org.eclipse.cdt.debug.mi.core.event.MIRegisterChangedEvent;
 import org.eclipse.cdt.debug.mi.core.event.MIVarChangedEvent;
 
@@ -47,7 +47,7 @@
 		}
 	}
 
-	public ChangedEvent(CSession s, MIBreakPointChangedEvent bpoint) {
+	public ChangedEvent(CSession s, MIBreakpointChangedEvent bpoint) {
 		session = s;
 		BreakpointManager mgr = (BreakpointManager)session.getBreakpointManager();
 		int number = bpoint.getNumber();
Index: src/org/eclipse/cdt/debug/mi/core/cdi/CreatedEvent.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/cdi/CreatedEvent.java,v
retrieving revision 1.1
diff -u -r1.1 CreatedEvent.java
--- src/org/eclipse/cdt/debug/mi/core/cdi/CreatedEvent.java	8 Jan 2003 15:41:44 -0000	1.1
+++ src/org/eclipse/cdt/debug/mi/core/cdi/CreatedEvent.java	8 Jan 2003 21:32:37 -0000
@@ -7,7 +7,7 @@
 import org.eclipse.cdt.debug.core.cdi.event.ICDICreatedEvent;
 import org.eclipse.cdt.debug.core.cdi.model.ICDIBreakpoint;
 import org.eclipse.cdt.debug.core.cdi.model.ICDIObject;
-import org.eclipse.cdt.debug.mi.core.event.MIBreakPointCreatedEvent;
+import org.eclipse.cdt.debug.mi.core.event.MIBreakpointCreatedEvent;
 
 /**
  */
@@ -16,7 +16,7 @@
 	CSession session;
 	ICDIObject source;
 
-	public CreatedEvent(CSession s, MIBreakPointCreatedEvent bpoint) {
+	public CreatedEvent(CSession s, MIBreakpointCreatedEvent bpoint) {
 		session = s;
 		BreakpointManager mgr = (BreakpointManager)session.getBreakpointManager();
 		int number = bpoint.getNumber();
Index: src/org/eclipse/cdt/debug/mi/core/cdi/DestroyedEvent.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/cdi/DestroyedEvent.java,v
retrieving revision 1.5
diff -u -r1.5 DestroyedEvent.java
--- src/org/eclipse/cdt/debug/mi/core/cdi/DestroyedEvent.java	8 Jan 2003 15:41:51 -0000	1.5
+++ src/org/eclipse/cdt/debug/mi/core/cdi/DestroyedEvent.java	8 Jan 2003 21:32:37 -0000
@@ -7,7 +7,7 @@
 
 import org.eclipse.cdt.debug.core.cdi.event.ICDIDestroyedEvent;
 import org.eclipse.cdt.debug.core.cdi.model.ICDIObject;
-import org.eclipse.cdt.debug.mi.core.event.MIBreakPointDeletedEvent;
+import org.eclipse.cdt.debug.mi.core.event.MIBreakpointDeletedEvent;
 import org.eclipse.cdt.debug.mi.core.event.MIThreadExitEvent;
 import org.eclipse.cdt.debug.mi.core.event.MIVarChangedEvent;
 
@@ -35,7 +35,7 @@
 		}
 	}
 
-	public DestroyedEvent(CSession s, MIBreakPointDeletedEvent bpoint) {
+	public DestroyedEvent(CSession s, MIBreakpointDeletedEvent bpoint) {
 		session = s;
 		BreakpointManager mgr = (BreakpointManager)session.getBreakpointManager();
 		int number = bpoint.getNumber();
Index: src/org/eclipse/cdt/debug/mi/core/cdi/EventManager.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/cdi/EventManager.java,v
retrieving revision 1.28
diff -u -r1.28 EventManager.java
--- src/org/eclipse/cdt/debug/mi/core/cdi/EventManager.java	8 Jan 2003 17:46:46 -0000	1.28
+++ src/org/eclipse/cdt/debug/mi/core/cdi/EventManager.java	8 Jan 2003 21:32:37 -0000
@@ -15,9 +15,9 @@
 import org.eclipse.cdt.debug.core.cdi.ICDIEventManager;
 import org.eclipse.cdt.debug.core.cdi.event.ICDIEvent;
 import org.eclipse.cdt.debug.core.cdi.event.ICDIEventListener;
-import org.eclipse.cdt.debug.mi.core.event.MIBreakPointChangedEvent;
-import org.eclipse.cdt.debug.mi.core.event.MIBreakPointCreatedEvent;
-import org.eclipse.cdt.debug.mi.core.event.MIBreakPointDeletedEvent;
+import org.eclipse.cdt.debug.mi.core.event.MIBreakpointChangedEvent;
+import org.eclipse.cdt.debug.mi.core.event.MIBreakpointCreatedEvent;
+import org.eclipse.cdt.debug.mi.core.event.MIBreakpointDeletedEvent;
 import org.eclipse.cdt.debug.mi.core.event.MIChangedEvent;
 import org.eclipse.cdt.debug.mi.core.event.MICreatedEvent;
 import org.eclipse.cdt.debug.mi.core.event.MIDestroyedEvent;
@@ -81,12 +81,13 @@
 						blocks[i].setDirty(false);
 					}
 				}
-			} else if (miEvent instanceof MIBreakPointChangedEvent) {
-				MIBreakPointChangedEvent bpoint = (MIBreakPointChangedEvent)miEvent;
+			} else if (miEvent instanceof MIBreakpointChangedEvent) {
+				MIBreakpointChangedEvent bpoint = (MIBreakpointChangedEvent)miEvent;
 				if (bpoint.getNumber() > 0) {
-					cdiList.add(new ChangedEvent(session, (MIBreakPointChangedEvent)miEvent));
+					cdiList.add(new ChangedEvent(session, bpoint));
 				} else {
-					// Try to update to figure out what have change.
+					// Something change we do not know what
+					// Let the breakpoint manager handle it with an update().
 					try {
 						((BreakpointManager)(session.getBreakpointManager())).update();
 					} catch (CDIException e) {
@@ -102,12 +103,32 @@
 				cdiList.add(new DestroyedEvent(session));
 			} else if (miEvent instanceof MIDetachedEvent) {
 				cdiList.add(new DisconnectedEvent(session));
-			} else if (miEvent instanceof MIBreakPointDeletedEvent) {
-				cdiList.add(new DestroyedEvent(session, (MIBreakPointDeletedEvent)miEvent));
+			} else if (miEvent instanceof MIBreakpointDeletedEvent) {
+				MIBreakpointDeletedEvent bpoint = (MIBreakpointDeletedEvent)miEvent;
+				if (bpoint.getNumber() > 0) {
+					cdiList.add(new DestroyedEvent(session, bpoint));
+				} else {
+					// Something was deleted we do not know what
+					// Let the breakpoint manager handle it with an update().
+					try {
+						((BreakpointManager)(session.getBreakpointManager())).update();
+					} catch (CDIException e) {
+					}
+				}
 			}
 		} else if (miEvent instanceof MICreatedEvent) {
-			if (miEvent instanceof MIBreakPointCreatedEvent) {
-				cdiList.add(new CreatedEvent(session, (MIBreakPointCreatedEvent)miEvent));
+			if (miEvent instanceof MIBreakpointCreatedEvent) {
+				MIBreakpointCreatedEvent bpoint = (MIBreakpointCreatedEvent)miEvent;
+				if (bpoint.getNumber() > 0) {
+					cdiList.add(new CreatedEvent(session, bpoint));
+				} else {
+					// Something created we do not know what
+					// Let the breakpoint manager handle it with an update().
+					try {
+						((BreakpointManager)(session.getBreakpointManager())).update();
+					} catch (CDIException e) {
+					}
+				}
 			}
 		}
 
Index: src/org/eclipse/cdt/debug/mi/core/cdi/SuspendedEvent.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/cdi/SuspendedEvent.java,v
retrieving revision 1.13
diff -u -r1.13 SuspendedEvent.java
--- src/org/eclipse/cdt/debug/mi/core/cdi/SuspendedEvent.java	2 Dec 2002 18:36:16 -0000	1.13
+++ src/org/eclipse/cdt/debug/mi/core/cdi/SuspendedEvent.java	8 Jan 2003 21:32:37 -0000
@@ -8,7 +8,7 @@
 import org.eclipse.cdt.debug.core.cdi.ICDISessionObject;
 import org.eclipse.cdt.debug.core.cdi.event.ICDISuspendedEvent;
 import org.eclipse.cdt.debug.core.cdi.model.ICDIObject;
-import org.eclipse.cdt.debug.mi.core.event.MIBreakpointEvent;
+import org.eclipse.cdt.debug.mi.core.event.MIBreakpointHitEvent;
 import org.eclipse.cdt.debug.mi.core.event.MIErrorEvent;
 import org.eclipse.cdt.debug.mi.core.event.MIEvent;
 import org.eclipse.cdt.debug.mi.core.event.MIFunctionFinishedEvent;
@@ -32,8 +32,8 @@
 	}
 
 	public ICDISessionObject getReason() {
-		if (event instanceof MIBreakpointEvent) {
-			return new BreakpointHit(session, (MIBreakpointEvent)event);
+		if (event instanceof MIBreakpointHitEvent) {
+			return new BreakpointHit(session, (MIBreakpointHitEvent)event);
 		} else if (event instanceof MIWatchpointTriggerEvent) {
 			return new WatchpointTrigger(session, (MIWatchpointTriggerEvent)event);
 		} else if (event instanceof MIWatchpointScopeEvent) {
Index: src/org/eclipse/cdt/debug/mi/core/cdi/Watchpoint.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/cdi/Watchpoint.java,v
retrieving revision 1.5
diff -u -r1.5 Watchpoint.java
--- src/org/eclipse/cdt/debug/mi/core/cdi/Watchpoint.java	5 Dec 2002 15:59:55 -0000	1.5
+++ src/org/eclipse/cdt/debug/mi/core/cdi/Watchpoint.java	8 Jan 2003 21:32:37 -0000
@@ -7,13 +7,13 @@
 
 import org.eclipse.cdt.debug.core.cdi.CDIException;
 import org.eclipse.cdt.debug.core.cdi.model.ICDIWatchpoint;
-import org.eclipse.cdt.debug.mi.core.output.MIBreakPoint;
+import org.eclipse.cdt.debug.mi.core.output.MIBreakpoint;
 
 /**
  */
 public class Watchpoint extends Breakpoint implements ICDIWatchpoint {
 
-	public Watchpoint(BreakpointManager m, MIBreakPoint miBreak) {
+	public Watchpoint(BreakpointManager m, MIBreakpoint miBreak) {
 		super(m, miBreak);
 	}
 
@@ -21,21 +21,21 @@
 	 * @see org.eclipse.cdt.debug.core.cdi.ICDIWatchpoint#getWatchExpression()
 	 */
 	public String getWatchExpression() throws CDIException {
-		return getMIBreakPoint().getWhat();
+		return getMIBreakpoint().getWhat();
 	}
 
 	/**
 	 * @see org.eclipse.cdt.debug.core.cdi.ICDIWatchpoint#isReadType()
 	 */
 	public boolean isReadType() {
-		return getMIBreakPoint().isReadWatchpoint() || getMIBreakPoint().isAccessWatchpoint();
+		return getMIBreakpoint().isReadWatchpoint() || getMIBreakpoint().isAccessWatchpoint();
 	}
 
 	/**
 	 * @see org.eclipse.cdt.debug.core.cdi.ICDIWatchpoint#isWriteType()
 	 */
 	public boolean isWriteType() {
-		return getMIBreakPoint().isAccessWatchpoint() || getMIBreakPoint().isWriteWatchpoint();
+		return getMIBreakpoint().isAccessWatchpoint() || getMIBreakpoint().isWriteWatchpoint();
 	}
 
 }
Index: src/org/eclipse/cdt/debug/mi/core/event/MIBreakPointChangedEvent.java
===================================================================
RCS file: src/org/eclipse/cdt/debug/mi/core/event/MIBreakPointChangedEvent.java
diff -N src/org/eclipse/cdt/debug/mi/core/event/MIBreakPointChangedEvent.java
--- src/org/eclipse/cdt/debug/mi/core/event/MIBreakPointChangedEvent.java	8 Jan 2003 15:42:33 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,31 +0,0 @@
-/*
- * (c) Copyright QNX Software Systems Ltd. 2002.
- * All Rights Reserved.
- *
- */
-package org.eclipse.cdt.debug.mi.core.event;
-
-
-
-/**
- *
- */
-public class MIBreakPointChangedEvent extends MIChangedEvent {
-
-	int no;
-
-	public MIBreakPointChangedEvent(int number) {
-		super(0);
-		no = number;
-	}
-
-	public MIBreakPointChangedEvent(int id, int number) {
-		super(id);
-		no = number;
-	}
-
-	public int getNumber() {
-		return no;
-	}
-
-}
Index: src/org/eclipse/cdt/debug/mi/core/event/MIBreakPointCreatedEvent.java
===================================================================
RCS file: src/org/eclipse/cdt/debug/mi/core/event/MIBreakPointCreatedEvent.java
diff -N src/org/eclipse/cdt/debug/mi/core/event/MIBreakPointCreatedEvent.java
--- src/org/eclipse/cdt/debug/mi/core/event/MIBreakPointCreatedEvent.java	8 Jan 2003 15:42:38 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,31 +0,0 @@
-/*
- * (c) Copyright QNX Software Systems Ltd. 2002.
- * All Rights Reserved.
- *
- */
-package org.eclipse.cdt.debug.mi.core.event;
-
-
-
-/**
- *
- */
-public class MIBreakPointCreatedEvent extends MICreatedEvent {
-
-	int no;
-
-	public MIBreakPointCreatedEvent(int number) {
-		super(0);
-		no = number;
-	}
-
-	public MIBreakPointCreatedEvent(int id, int number) {
-		super(id);
-		no = number;
-	}
-
-	public int getNumber() {
-		return no;
-	}
-
-}
Index: src/org/eclipse/cdt/debug/mi/core/event/MIBreakPointDeletedEvent.java
===================================================================
RCS file: src/org/eclipse/cdt/debug/mi/core/event/MIBreakPointDeletedEvent.java
diff -N src/org/eclipse/cdt/debug/mi/core/event/MIBreakPointDeletedEvent.java
--- src/org/eclipse/cdt/debug/mi/core/event/MIBreakPointDeletedEvent.java	8 Jan 2003 15:42:44 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,31 +0,0 @@
-/*
- * (c) Copyright QNX Software Systems Ltd. 2002.
- * All Rights Reserved.
- *
- */
-package org.eclipse.cdt.debug.mi.core.event;
-
-
-
-/**
- *
- */
-public class MIBreakPointDeletedEvent extends MIDestroyedEvent {
-
-	int no;
-
-	public MIBreakPointDeletedEvent(int number) {
-		super(0);
-		no = number;
-	}
-
-	public MIBreakPointDeletedEvent(int id, int number) {
-		super(id);
-		no = number;
-	}
-
-	public int getNumber() {
-		return no;
-	}
-
-}
Index: src/org/eclipse/cdt/debug/mi/core/event/MIBreakpointChangedEvent.java
===================================================================
RCS file: src/org/eclipse/cdt/debug/mi/core/event/MIBreakpointChangedEvent.java
diff -N src/org/eclipse/cdt/debug/mi/core/event/MIBreakpointChangedEvent.java
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ src/org/eclipse/cdt/debug/mi/core/event/MIBreakpointChangedEvent.java	8 Jan 2003 21:32:36 -0000
@@ -0,0 +1,31 @@
+/*
+ * (c) Copyright QNX Software Systems Ltd. 2002.
+ * All Rights Reserved.
+ *
+ */
+package org.eclipse.cdt.debug.mi.core.event;
+
+
+
+/**
+ *
+ */
+public class MIBreakpointChangedEvent extends MIChangedEvent {
+
+	int no;
+
+	public MIBreakpointChangedEvent(int number) {
+		super(0);
+		no = number;
+	}
+
+	public MIBreakpointChangedEvent(int id, int number) {
+		super(id);
+		no = number;
+	}
+
+	public int getNumber() {
+		return no;
+	}
+
+}
Index: src/org/eclipse/cdt/debug/mi/core/event/MIBreakpointCreatedEvent.java
===================================================================
RCS file: src/org/eclipse/cdt/debug/mi/core/event/MIBreakpointCreatedEvent.java
diff -N src/org/eclipse/cdt/debug/mi/core/event/MIBreakpointCreatedEvent.java
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ src/org/eclipse/cdt/debug/mi/core/event/MIBreakpointCreatedEvent.java	8 Jan 2003 21:32:36 -0000
@@ -0,0 +1,31 @@
+/*
+ * (c) Copyright QNX Software Systems Ltd. 2002.
+ * All Rights Reserved.
+ *
+ */
+package org.eclipse.cdt.debug.mi.core.event;
+
+
+
+/**
+ *
+ */
+public class MIBreakpointCreatedEvent extends MICreatedEvent {
+
+	int no;
+
+	public MIBreakpointCreatedEvent(int number) {
+		super(0);
+		no = number;
+	}
+
+	public MIBreakpointCreatedEvent(int id, int number) {
+		super(id);
+		no = number;
+	}
+
+	public int getNumber() {
+		return no;
+	}
+
+}
Index: src/org/eclipse/cdt/debug/mi/core/event/MIBreakpointDeletedEvent.java
===================================================================
RCS file: src/org/eclipse/cdt/debug/mi/core/event/MIBreakpointDeletedEvent.java
diff -N src/org/eclipse/cdt/debug/mi/core/event/MIBreakpointDeletedEvent.java
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ src/org/eclipse/cdt/debug/mi/core/event/MIBreakpointDeletedEvent.java	8 Jan 2003 21:32:36 -0000
@@ -0,0 +1,31 @@
+/*
+ * (c) Copyright QNX Software Systems Ltd. 2002.
+ * All Rights Reserved.
+ *
+ */
+package org.eclipse.cdt.debug.mi.core.event;
+
+
+
+/**
+ *
+ */
+public class MIBreakpointDeletedEvent extends MIDestroyedEvent {
+
+	int no;
+
+	public MIBreakpointDeletedEvent(int number) {
+		super(0);
+		no = number;
+	}
+
+	public MIBreakpointDeletedEvent(int id, int number) {
+		super(id);
+		no = number;
+	}
+
+	public int getNumber() {
+		return no;
+	}
+
+}
Index: src/org/eclipse/cdt/debug/mi/core/event/MIBreakpointEvent.java
===================================================================
RCS file: src/org/eclipse/cdt/debug/mi/core/event/MIBreakpointEvent.java
diff -N src/org/eclipse/cdt/debug/mi/core/event/MIBreakpointEvent.java
--- src/org/eclipse/cdt/debug/mi/core/event/MIBreakpointEvent.java	29 Nov 2002 18:53:08 -0000	1.7
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,88 +0,0 @@
-/*
- * (c) Copyright QNX Software Systems Ltd. 2002.
- * All Rights Reserved.
- *
- */
-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;
-
-/**
- * ^stopped,reason="breakpoint-hit",bkptno="1",thread-id="0",frame={addr="0x08048468",func="main",args=[{name="argc",value="1"},{name="argv",value="0xbffff18c"}],file="hello.c",line="4"}
- *
- */
-public class MIBreakpointEvent extends MIStoppedEvent {
-
-	int bkptno;
-	MIFrame frame;
-
-	public MIBreakpointEvent(MIExecAsyncOutput record) {
-		super(record);
-		parse();
-	}
-
-	public MIBreakpointEvent(MIResultRecord record) {
-		super(record);
-		parse();
-	}
-
-	public int getNumber() {
-		return bkptno;
-	}
-
-	public MIFrame getMIFrame() {
-		return frame;
-	}
-
-	public String toString() {
-		StringBuffer buffer = new StringBuffer();
-		buffer.append("number=").append(bkptno).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) {
-			results = rr.getMIResults();
-		}
-		if (results != null) {
-			for (int i = 0; i < results.length; i++) {
-				String var = results[i].getVariable();
-				MIValue value = results[i].getMIValue();
-				String str = "";
-				if (value != null && value instanceof MIConst) {
-					str = ((MIConst)value).getString();
-				}
-
-				if (var.equals("bkptno")) {
-					try {
-						bkptno = Integer.parseInt(str.trim());
-					} catch (NumberFormatException e) {
-					}
-				} else if (var.equals("thread-id")) {
-					try {
-						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);
-					}
-				}
-			}
-		}
-	}
-}
Index: src/org/eclipse/cdt/debug/mi/core/event/MIBreakpointHitEvent.java
===================================================================
RCS file: src/org/eclipse/cdt/debug/mi/core/event/MIBreakpointHitEvent.java
diff -N src/org/eclipse/cdt/debug/mi/core/event/MIBreakpointHitEvent.java
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ src/org/eclipse/cdt/debug/mi/core/event/MIBreakpointHitEvent.java	8 Jan 2003 21:32:36 -0000
@@ -0,0 +1,88 @@
+/*
+ * (c) Copyright QNX Software Systems Ltd. 2002.
+ * All Rights Reserved.
+ *
+ */
+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;
+
+/**
+ * ^stopped,reason="breakpoint-hit",bkptno="1",thread-id="0",frame={addr="0x08048468",func="main",args=[{name="argc",value="1"},{name="argv",value="0xbffff18c"}],file="hello.c",line="4"}
+ *
+ */
+public class MIBreakpointHitEvent extends MIStoppedEvent {
+
+	int bkptno;
+	MIFrame frame;
+
+	public MIBreakpointHitEvent(MIExecAsyncOutput record) {
+		super(record);
+		parse();
+	}
+
+	public MIBreakpointHitEvent(MIResultRecord record) {
+		super(record);
+		parse();
+	}
+
+	public int getNumber() {
+		return bkptno;
+	}
+
+	public MIFrame getMIFrame() {
+		return frame;
+	}
+
+	public String toString() {
+		StringBuffer buffer = new StringBuffer();
+		buffer.append("number=").append(bkptno).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) {
+			results = rr.getMIResults();
+		}
+		if (results != null) {
+			for (int i = 0; i < results.length; i++) {
+				String var = results[i].getVariable();
+				MIValue value = results[i].getMIValue();
+				String str = "";
+				if (value != null && value instanceof MIConst) {
+					str = ((MIConst)value).getString();
+				}
+
+				if (var.equals("bkptno")) {
+					try {
+						bkptno = Integer.parseInt(str.trim());
+					} catch (NumberFormatException e) {
+					}
+				} else if (var.equals("thread-id")) {
+					try {
+						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);
+					}
+				}
+			}
+		}
+	}
+}
Index: src/org/eclipse/cdt/debug/mi/core/output/MIBreakInsertInfo.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIBreakInsertInfo.java,v
retrieving revision 1.4
diff -u -r1.4 MIBreakInsertInfo.java
--- src/org/eclipse/cdt/debug/mi/core/output/MIBreakInsertInfo.java	25 Nov 2002 17:07:39 -0000	1.4
+++ src/org/eclipse/cdt/debug/mi/core/output/MIBreakInsertInfo.java	8 Jan 2003 21:32:37 -0000
@@ -21,7 +21,7 @@
  */
 public class MIBreakInsertInfo extends MIInfo {
 
-	MIBreakPoint[] breakpoints;
+	MIBreakpoint[] breakpoints;
 
 	void parse() {
 		List aList = new ArrayList(1);
@@ -33,27 +33,27 @@
 				for (int i = 0; i < results.length; i++) {
 					String var = results[i].getVariable();
 					MIValue val = results[i].getMIValue();
-					MIBreakPoint bpt = null;
+					MIBreakpoint bpt = null;
 					if (var.equals("wpt")) {
 						if (val instanceof MITuple) {
-							bpt = new MIBreakPoint((MITuple)val);
+							bpt = new MIBreakpoint((MITuple)val);
 							bpt.setEnabled(true);
 							bpt.setWriteWatchpoint(true);
 						}
 					} else if (var.equals("bkpt")) {
 						if (val instanceof MITuple) {
-							bpt = new MIBreakPoint((MITuple)val);
+							bpt = new MIBreakpoint((MITuple)val);
 							bpt.setEnabled(true);
 						}
 					} else if (var.equals("hw-awpt")) {
 						if (val instanceof MITuple) {
-							bpt = new MIBreakPoint((MITuple)val);
+							bpt = new MIBreakpoint((MITuple)val);
 							bpt.setAccessWatchpoint(true);
 							bpt.setEnabled(true);
 						}
 					} else if (var.equals("hw-rwpt")) {
 						if (val instanceof MITuple) {
-							bpt = new MIBreakPoint((MITuple)val);
+							bpt = new MIBreakpoint((MITuple)val);
 							bpt.setReadWatchpoint(true);
 							bpt.setEnabled(true);
 						}
@@ -64,14 +64,14 @@
 				}
 			}
 		}
-		breakpoints = (MIBreakPoint[])aList.toArray(new MIBreakPoint[aList.size()]);
+		breakpoints = (MIBreakpoint[])aList.toArray(new MIBreakpoint[aList.size()]);
 	}
 
 	public MIBreakInsertInfo(MIOutput record) {
 		super(record);
 	}
 
-	public MIBreakPoint[] getBreakPoints() {
+	public MIBreakpoint[] getMIBreakpoints() {
 		if (breakpoints == null) {
 			parse();
 		}
Index: src/org/eclipse/cdt/debug/mi/core/output/MIBreakListInfo.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIBreakListInfo.java,v
retrieving revision 1.4
diff -u -r1.4 MIBreakListInfo.java
--- src/org/eclipse/cdt/debug/mi/core/output/MIBreakListInfo.java	12 Aug 2002 03:16:56 -0000	1.4
+++ src/org/eclipse/cdt/debug/mi/core/output/MIBreakListInfo.java	8 Jan 2003 21:32:37 -0000
@@ -18,13 +18,13 @@
  */
 public class MIBreakListInfo extends MIInfo {
 
-	MIBreakPoint[] breakpoints;
+	MIBreakpoint[] breakpoints;
 
 	public MIBreakListInfo(MIOutput rr) {
 		super(rr);
 	}
 
-	public MIBreakPoint[] getBreakPoints() {
+	public MIBreakpoint[] getMIBreakpoints() {
 		if (breakpoints == null) {
 			parse();
 		}
@@ -46,7 +46,7 @@
 				}
 			}
 		}
-		breakpoints = (MIBreakPoint[])aList.toArray(new MIBreakPoint[aList.size()]);
+		breakpoints = (MIBreakpoint[])aList.toArray(new MIBreakpoint[aList.size()]);
 	}
 
 	void parseTable(MIValue val, List aList) {
@@ -69,7 +69,7 @@
 				if (b.equals("bkpt")) {
 					MIValue value = bkpts[i].getMIValue();
 					if (value instanceof MITuple) {
-						aList.add(new MIBreakPoint((MITuple)value));
+						aList.add(new MIBreakpoint((MITuple)value));
 					}
 				}
 			}
Index: src/org/eclipse/cdt/debug/mi/core/output/MIBreakPoint.java
===================================================================
RCS file: src/org/eclipse/cdt/debug/mi/core/output/MIBreakPoint.java
diff -N src/org/eclipse/cdt/debug/mi/core/output/MIBreakPoint.java
--- src/org/eclipse/cdt/debug/mi/core/output/MIBreakPoint.java	25 Nov 2002 17:07:58 -0000	1.9
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,223 +0,0 @@
-/*
- * (c) Copyright QNX Software Systems Ltd. 2002.
- * All Rights Reserved.
- */
-
-package org.eclipse.cdt.debug.mi.core.output;
-
-/**
- * Contain info about the GDB/MI breakpoint info.
- *<ul>
- * <li>
- * -break-insert main
- * ^done,bkpt={number="1",type="breakpoint",disp="keep",enabled="y",addr="0x0804846b",func="main",file="hello.c",line="4",times="0"}
- * (gdb)
- * </li>
- * <li>
- * -break-insert -t main
- * ^done,bkpt={number="2",type="breakpoint",disp="del",enabled="y",addr="0x0804846b",func="main",file="hello.c",line="4",times="0"}
- * </li>
- * <li>
- * -break-insert -c 1 main
-^done,bkpt={number="3",type="breakpoint",disp="keep",enabled="y",addr="0x0804846b",func="main",file="hello.c",line="4",cond="1",times="0"}
- * </li>
- * <li>
- * -break-insert -h main
- * ^done,bkpt={number="4",type="hw breakpoint",disp="keep",enabled="y",addr="0x0804846b",func="main",file="hello.c",line="4",times="0"}
- * <li>
- * -break-insert -p 0 main
- * ^done,bkpt={number="5",type="breakpoint",disp="keep",enabled="y",addr="0x0804846b",func="main",file="hello.c",line="4",thread="0",thread="0",times="0"}
- * </li>
- * <li>
- * -break-insert -a p
- * ^done,hw-awpt={number="2",exp="p"}
- * </li>
- * <li>
- * -break-watch -r p
- * ^done,hw-rwpt={number="4",exp="p"}
- * </li>
- * <li>
- * -break-watch p
- * ^done,wpt={number="6",exp="p"}
- * </li>
- *</ul>
- */
-public class MIBreakPoint {
-
-	int number;
-	String type = "";
-	String disp = "";
-	boolean enabled;
-	long address;
-	String func = ""; 
-	String file = "";
-	int line;
-	String cond = "";
-	int times;
-	String what = "";
-	String threadId = "";
-	int ignore;
-
-	boolean isWpt;
-	boolean isAWpt;
-	boolean isRWpt;
-	boolean isWWpt;
-
-	public MIBreakPoint(MITuple tuple) {
-		parse(tuple);
-	}
-
-	public int getNumber() {
-		return number;
-	}
-
-	public String getType() {
-		return type;
-	}
-
-	public boolean isHardware() {
-		return getType().startsWith("hw") || isWatchpoint();
-	}
-
-	public boolean isTemporary() {
-		return getDisposition().equals("del");
-	}
-
-	public boolean isWatchpoint() {
-		return isWpt;
-	}
-
-	public void setWatcpoint(boolean w) {
-		isWpt = w;
-	}
-
-	public boolean isAccessWatchpoint() {
-		return isAWpt;
-	}
-
-	public void setAccessWatchpoint(boolean a) {
-		isWpt = a;
-		isAWpt = a;
-	}
-
-	public boolean isReadWatchpoint() {
-		return isRWpt;
-	}
-
-	public void setReadWatchpoint(boolean r) {
-		isWpt = r;
-		isRWpt = r;
-	}
-
-	public boolean isWriteWatchpoint() {
-		return isWWpt;
-	}
-
-	public void setWriteWatchpoint(boolean w) {
-		isWpt = w;
-		isWWpt = w;
-	}
-
-	public String getDisposition() {
-		return disp;
-	}
-
-	public boolean isEnabled() {
-		return enabled;
-	}
-
-	public void setEnabled(boolean e) {
-		enabled = e;
-	}
-
-	public long getAddress() {
-		return address;
-	}
-
-	public String getFunction() {
-		return func;
-	}
-
-	public String getFile() {
-		return file;
-	}
-
-	public int getLine() {
-		return line;
-	}
-
-	public int getTimes() {
-		return times;
-	}
-
-	public String getWhat() {
-		return what;
-	}
-
-	public int getIgnoreCount() {
-		return ignore;
-	}
-
-	public String getCondition() {
-		return cond;
-	}
-
-	public String getThreadId() {
-		return threadId;
-	}
-
-	void parse(MITuple tuple) {
-		MIResult[] results = tuple.getMIResults();
-		for (int i = 0; i < results.length; i++) {
-			String var = results[i].getVariable();
-			MIValue value = results[i].getMIValue();
-			String str = "";
-			if (value != null && value instanceof MIConst) {
-				str = ((MIConst)value).getCString();
-			}
-
-			if (var.equals("number")) {
-				try {
-					number = Integer.parseInt(str.trim());
-				} catch (NumberFormatException e) {
-				}
-			} else if (var.equals("type")) {
-				type = str;
-			} else if (var.equals("disp")) {
-				disp = str;
-			} else if (var.equals("enabled")) {
-				enabled = str.equals("y");
-			} else if (var.equals("addr")) {
-				try {
-					address = Long.decode(str.trim()).longValue();
-				} catch (NumberFormatException e) {
-				}
-			} else if (var.equals("func")) {
-				func = str;
-			} else if (var.equals("file")) {
-				file = str;
-			} else if (var.equals("thread")) {
-				threadId = str;
-			} else if (var.equals("line")) {
-				try {
-					line = Integer.parseInt(str.trim());
-				} catch (NumberFormatException e) {
-				}
-			} else if (var.equals("times")) {
-				try {
-					times = Integer.parseInt(str.trim());
-				} catch (NumberFormatException e) {
-				}
-			} else if (var.equals("what") || var.equals("exp")) {
-				what = str;
-			} else if (var.equals("ignore")) {
-				try {
-					ignore = Integer.parseInt(str.trim());
-				} catch (NumberFormatException e) {
-				}
-			} else if (var.equals("cond")) {
-				cond = str;
-			}
-		}
-	}
-}
Index: src/org/eclipse/cdt/debug/mi/core/output/MIBreakpoint.java
===================================================================
RCS file: src/org/eclipse/cdt/debug/mi/core/output/MIBreakpoint.java
diff -N src/org/eclipse/cdt/debug/mi/core/output/MIBreakpoint.java
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ src/org/eclipse/cdt/debug/mi/core/output/MIBreakpoint.java	8 Jan 2003 21:32:37 -0000
@@ -0,0 +1,223 @@
+/*
+ * (c) Copyright QNX Software Systems Ltd. 2002.
+ * All Rights Reserved.
+ */
+
+package org.eclipse.cdt.debug.mi.core.output;
+
+/**
+ * Contain info about the GDB/MI breakpoint info.
+ *<ul>
+ * <li>
+ * -break-insert main
+ * ^done,bkpt={number="1",type="breakpoint",disp="keep",enabled="y",addr="0x0804846b",func="main",file="hello.c",line="4",times="0"}
+ * (gdb)
+ * </li>
+ * <li>
+ * -break-insert -t main
+ * ^done,bkpt={number="2",type="breakpoint",disp="del",enabled="y",addr="0x0804846b",func="main",file="hello.c",line="4",times="0"}
+ * </li>
+ * <li>
+ * -break-insert -c 1 main
+^done,bkpt={number="3",type="breakpoint",disp="keep",enabled="y",addr="0x0804846b",func="main",file="hello.c",line="4",cond="1",times="0"}
+ * </li>
+ * <li>
+ * -break-insert -h main
+ * ^done,bkpt={number="4",type="hw breakpoint",disp="keep",enabled="y",addr="0x0804846b",func="main",file="hello.c",line="4",times="0"}
+ * <li>
+ * -break-insert -p 0 main
+ * ^done,bkpt={number="5",type="breakpoint",disp="keep",enabled="y",addr="0x0804846b",func="main",file="hello.c",line="4",thread="0",thread="0",times="0"}
+ * </li>
+ * <li>
+ * -break-insert -a p
+ * ^done,hw-awpt={number="2",exp="p"}
+ * </li>
+ * <li>
+ * -break-watch -r p
+ * ^done,hw-rwpt={number="4",exp="p"}
+ * </li>
+ * <li>
+ * -break-watch p
+ * ^done,wpt={number="6",exp="p"}
+ * </li>
+ *</ul>
+ */
+public class MIBreakpoint {
+
+	int number;
+	String type = "";
+	String disp = "";
+	boolean enabled;
+	long address;
+	String func = ""; 
+	String file = "";
+	int line;
+	String cond = "";
+	int times;
+	String what = "";
+	String threadId = "";
+	int ignore;
+
+	boolean isWpt;
+	boolean isAWpt;
+	boolean isRWpt;
+	boolean isWWpt;
+
+	public MIBreakpoint(MITuple tuple) {
+		parse(tuple);
+	}
+
+	public int getNumber() {
+		return number;
+	}
+
+	public String getType() {
+		return type;
+	}
+
+	public boolean isHardware() {
+		return getType().startsWith("hw") || isWatchpoint();
+	}
+
+	public boolean isTemporary() {
+		return getDisposition().equals("del");
+	}
+
+	public boolean isWatchpoint() {
+		return isWpt;
+	}
+
+	public void setWatcpoint(boolean w) {
+		isWpt = w;
+	}
+
+	public boolean isAccessWatchpoint() {
+		return isAWpt;
+	}
+
+	public void setAccessWatchpoint(boolean a) {
+		isWpt = a;
+		isAWpt = a;
+	}
+
+	public boolean isReadWatchpoint() {
+		return isRWpt;
+	}
+
+	public void setReadWatchpoint(boolean r) {
+		isWpt = r;
+		isRWpt = r;
+	}
+
+	public boolean isWriteWatchpoint() {
+		return isWWpt;
+	}
+
+	public void setWriteWatchpoint(boolean w) {
+		isWpt = w;
+		isWWpt = w;
+	}
+
+	public String getDisposition() {
+		return disp;
+	}
+
+	public boolean isEnabled() {
+		return enabled;
+	}
+
+	public void setEnabled(boolean e) {
+		enabled = e;
+	}
+
+	public long getAddress() {
+		return address;
+	}
+
+	public String getFunction() {
+		return func;
+	}
+
+	public String getFile() {
+		return file;
+	}
+
+	public int getLine() {
+		return line;
+	}
+
+	public int getTimes() {
+		return times;
+	}
+
+	public String getWhat() {
+		return what;
+	}
+
+	public int getIgnoreCount() {
+		return ignore;
+	}
+
+	public String getCondition() {
+		return cond;
+	}
+
+	public String getThreadId() {
+		return threadId;
+	}
+
+	void parse(MITuple tuple) {
+		MIResult[] results = tuple.getMIResults();
+		for (int i = 0; i < results.length; i++) {
+			String var = results[i].getVariable();
+			MIValue value = results[i].getMIValue();
+			String str = "";
+			if (value != null && value instanceof MIConst) {
+				str = ((MIConst)value).getCString();
+			}
+
+			if (var.equals("number")) {
+				try {
+					number = Integer.parseInt(str.trim());
+				} catch (NumberFormatException e) {
+				}
+			} else if (var.equals("type")) {
+				type = str;
+			} else if (var.equals("disp")) {
+				disp = str;
+			} else if (var.equals("enabled")) {
+				enabled = str.equals("y");
+			} else if (var.equals("addr")) {
+				try {
+					address = Long.decode(str.trim()).longValue();
+				} catch (NumberFormatException e) {
+				}
+			} else if (var.equals("func")) {
+				func = str;
+			} else if (var.equals("file")) {
+				file = str;
+			} else if (var.equals("thread")) {
+				threadId = str;
+			} else if (var.equals("line")) {
+				try {
+					line = Integer.parseInt(str.trim());
+				} catch (NumberFormatException e) {
+				}
+			} else if (var.equals("times")) {
+				try {
+					times = Integer.parseInt(str.trim());
+				} catch (NumberFormatException e) {
+				}
+			} else if (var.equals("what") || var.equals("exp")) {
+				what = str;
+			} else if (var.equals("ignore")) {
+				try {
+					ignore = Integer.parseInt(str.trim());
+				} catch (NumberFormatException e) {
+				}
+			} else if (var.equals("cond")) {
+				cond = str;
+			}
+		}
+	}
+}



Back to the top