Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[cdt-patch] Memory event first implementation.

	The responsability to generate Events for modify memory blocks is push
	on the CDI implementation.  The way we do this is every time consuming,
	when the inferior is suspended(see EventManager.processSuspendedEvent()),
	MemoryManager.update() is called, the method will go through the list of MemoryBlocks
	that are not MemoryBlocks.setFrozen() and fetch the new memories, the data is compare
	and MemoryChangedEvents are fired for blocks with changed values.
	Gdb/mi var objects does not seem to provide any support for Memory ranges.




Index: ChangeLog
===================================================================
RCS file: /home/tools/org.eclipse.cdt.debug.mi.core/ChangeLog,v
retrieving revision 1.9
diff -u -r1.9 ChangeLog
--- ChangeLog	17 Oct 2002 14:30:00 -0000	1.9
+++ ChangeLog	19 Oct 2002 19:14:36 -0000
@@ -1,3 +1,31 @@
+2002-10-19 Alain Magloire
+
+	The responsability to generate Events for modify memory blocks is push
+	on the CDI implementation.  The way we do this is every time consuming,
+	when the inferior is suspended(see EventManager.processSuspendedEvent()),
+	MemoryManager.update() is called, the method will go through the list of MemoryBlocks
+	that are not MemoryBlocks.setFrozen() and fetch the new memories, the data is compare
+	and MemoryChangedEvents are fired for blocks with changed values.
+	Gdb/mi var objects does not seem to provide any support for Memory ranges.
+
+	* src/.../core/cdi/MemoryChangedEvent.java: New File implements ICDIMemoryChangedEvent.
+	* src/.../core/cdi/EventManager.java (update): Process MIMemoryChangedEvent's.
+	(processSuspendedEvent): call MemoryManager.update().
+	* src/.../core/cdi/MemoryBlock.java (getExpression): New method.
+	(getMIDataReadMemoryInfo): New method.
+	(setMIDataReadMemoryInfo): New method.
+	* src/.../core/cdi/MemoryManager.java (update): New method.
+	(compareBlock): New method.
+	(listMemoryBlocks): New method.
+
+	* src/.../core/cdi/CTarget.java (setCurrentThread): Catch null pointer.
+	(getCThreads): Likewise.
+	* src/.../core/event/MIMemoryChangedEvent.java: New File.
+	* src/.../core/event/MIThreadExitEvent.java: Indentation fixes.
+	* src/.../core/event/MIVarChangedEvent.java: Indentation fixes.
+
+
+	
 2002-10-16 Alain Magloire
 
 	* src/.../mi/core/cdi/MemoryManager.java (createMemoryBlock):
Index: src/org/eclipse/cdt/debug/mi/core/MISession.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/MISession.java,v
retrieving revision 1.35
diff -u -r1.35 MISession.java
--- src/org/eclipse/cdt/debug/mi/core/MISession.java	10 Oct 2002 22:05:53 -0000	1.35
+++ src/org/eclipse/cdt/debug/mi/core/MISession.java	19 Oct 2002 19:14:38 -0000
@@ -235,7 +235,7 @@
 	static int number = 1;
 	public synchronized void postCommand(Command cmd, long timeout) throws MIException {
 
-//MIPlugin.getDefault().debugLog(number++ + " " + cmd.toString());
+MIPlugin.getDefault().debugLog(number++ + " " + cmd.toString());
 
 		// Test if we are in a sane state.
 		if (!txThread.isAlive() || !rxThread.isAlive()) {
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.32
diff -u -r1.32 RxThread.java
--- src/org/eclipse/cdt/debug/mi/core/RxThread.java	13 Oct 2002 02:28:14 -0000	1.32
+++ src/org/eclipse/cdt/debug/mi/core/RxThread.java	19 Oct 2002 19:14:37 -0000
@@ -68,8 +68,8 @@
 		try {
 			String line;
 			while ((line = reader.readLine()) != null) {
-//String text = (line.length() > 500) ? line.substring(0, 500) : line;
-//MIPlugin.getDefault().debugLog(text);
+String text = (line.length() > 500) ? line.substring(0, 500) : line;
+MIPlugin.getDefault().debugLog(text);
 				processMIOutput(line + "\n");
 			}
 		} catch (IOException e) {
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.29
diff -u -r1.29 CTarget.java
--- src/org/eclipse/cdt/debug/mi/core/cdi/CTarget.java	9 Oct 2002 14:08:42 -0000	1.29
+++ src/org/eclipse/cdt/debug/mi/core/cdi/CTarget.java	19 Oct 2002 19:14:41 -0000
@@ -97,6 +97,9 @@
 			try {
 				mi.postCommand(select);
 				MIThreadSelectInfo info = select.getMIThreadSelectInfo();
+				if (info == null) {
+					throw new CDIException("No Answer");
+				}
 				currentThreadId = info.getNewThreadId();
 			} catch (MIException e) {
 				throw new CDIException(e.getMessage());
@@ -171,7 +174,12 @@
 			//MIThreadListIdsInfo info = tids.getMIThreadListIdsInfo();
 			mi.postCommand(tids);
 			MIInfoThreadsInfo info = tids.getMIInfoThreadsInfo();
-			int[] ids = info.getThreadIds();
+			int [] ids;
+			if (info == null) {
+				ids = new int[0];
+			} else {
+				ids = info.getThreadIds();
+			}
 			if (ids != null && ids.length > 0) {
 				cthreads = new CThread[ids.length];
 				// Ok that means it is a multiThreaded.
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.19
diff -u -r1.19 EventManager.java
--- src/org/eclipse/cdt/debug/mi/core/cdi/EventManager.java	9 Oct 2002 14:08:42 -0000	1.19
+++ src/org/eclipse/cdt/debug/mi/core/cdi/EventManager.java	19 Oct 2002 19:14:39 -0000
@@ -23,6 +23,7 @@
 import org.eclipse.cdt.debug.mi.core.event.MIGDBExitEvent;
 import org.eclipse.cdt.debug.mi.core.event.MIInferiorExitEvent;
 import org.eclipse.cdt.debug.mi.core.event.MILocationReachedEvent;
+import org.eclipse.cdt.debug.mi.core.event.MIMemoryChangedEvent;
 import org.eclipse.cdt.debug.mi.core.event.MIRegisterChangedEvent;
 import org.eclipse.cdt.debug.mi.core.event.MIRunningEvent;
 import org.eclipse.cdt.debug.mi.core.event.MISignalEvent;
@@ -46,37 +47,52 @@
 	public void update(Observable o, Object arg) {
 		MIEvent miEvent = (MIEvent)arg;
 		CSession session = getCSession();
-		ICDIEvent cdiEvent = null;
+		List cdiList = new ArrayList(1);
 
 		if (miEvent instanceof MIStoppedEvent) {
 			processSuspendedEvent(miEvent);
-			cdiEvent = new SuspendedEvent(session, miEvent);
+			cdiList.add(new SuspendedEvent(session, miEvent));
 		} else if (miEvent instanceof MIRunningEvent) {
-			cdiEvent = new ResumedEvent(session, (MIRunningEvent)miEvent);
+			cdiList.add(new ResumedEvent(session, (MIRunningEvent)miEvent));
 		} else if (miEvent instanceof MIChangedEvent) {
 			if (miEvent instanceof MIVarChangedEvent) {
 				MIVarChangedEvent eventChanged = (MIVarChangedEvent)miEvent;
+				// We will receive a MIVarChangeEvent if the variable is
+				// no longer in scope in this case fire up a DestroyEvent
 				if (eventChanged.isInScope()) {
-					cdiEvent = new ChangedEvent(session, (MIVarChangedEvent)miEvent);
+					cdiList.add(new ChangedEvent(session, eventChanged));
 				} else {
-					cdiEvent = new DestroyedEvent(session, (MIVarChangedEvent)miEvent);
+					cdiList.add(new DestroyedEvent(session, eventChanged));
 				}
 			} else if (miEvent instanceof MIRegisterChangedEvent) {
-				cdiEvent = new ChangedEvent(session, (MIRegisterChangedEvent)miEvent);
+				cdiList.add(new ChangedEvent(session, (MIRegisterChangedEvent)miEvent));
+			} else if (miEvent instanceof MIMemoryChangedEvent) {
+				// We need to fire an event for all the register blocks
+				// that may contain the modified addresses.
+				MemoryManager mgr = (MemoryManager)session.getMemoryManager();
+				MemoryBlock[] blocks = mgr.listMemoryBlocks();
+				MIMemoryChangedEvent miMem = (MIMemoryChangedEvent)miEvent;
+				Long[] addresses = miMem.getAddresses();
+				for (int i = 0; i < blocks.length; i++) {
+					if (blocks[i].contains(addresses)) {
+						cdiList.add(new MemoryChangedEvent(session, blocks[i], miMem));
+					}
+				}
 			}
 		} else if (miEvent instanceof MIThreadExitEvent) {
-			cdiEvent = new DestroyedEvent(session,(MIThreadExitEvent)miEvent); 
+			cdiList.add(new DestroyedEvent(session,(MIThreadExitEvent)miEvent)); 
 		} else if (miEvent instanceof MIInferiorExitEvent) {
-			cdiEvent = new ExitedEvent(session, (MIInferiorExitEvent)miEvent);
+			cdiList.add(new ExitedEvent(session, (MIInferiorExitEvent)miEvent));
 		} else if (miEvent instanceof MIGDBExitEvent) {
-			cdiEvent = new DestroyedEvent(session);
+			cdiList.add(new DestroyedEvent(session));
 		} else if (miEvent instanceof MIDetachedEvent) {
-			cdiEvent = new DisconnectedEvent(session);
+			cdiList.add(new DisconnectedEvent(session));
 		}
 
 		// Fire the event;
 		if (isEnable) {
-			fireEvent(cdiEvent);
+			ICDIEvent[] cdiEvents = (ICDIEvent[])cdiList.toArray(new ICDIEvent[0]);
+			fireEvent(cdiEvents);
 		}
 	}
 
@@ -98,6 +114,14 @@
 		list.remove(listener);
 	}
 
+	private void fireEvent(ICDIEvent[] cdiEvents) {
+		if (cdiEvents != null) {
+			for (int i = 0; i < cdiEvents.length; i++) {
+				fireEvent(cdiEvents[i]);
+			}
+		}
+	}
+
 	private void fireEvent(ICDIEvent cdiEvent) {
 		if (cdiEvent != null) {
 			ICDIEventListener[] listeners =
@@ -110,6 +134,8 @@
 
 	/**
 	 * When suspended arrives, reset managers and target.
+	 * Alse the variable and the memory needs to be updated and events
+	 * fired for changes.
 	 */
 	void processSuspendedEvent(MIEvent event) {
 		int threadId = 0;
@@ -139,11 +165,14 @@
 		}
 		target.updateState(threadId);
 
+		// Update the managers.
 		VariableManager varMgr = getCSession().getVariableManager();
 		RegisterManager regMgr = getCSession().getRegisterManager();
+		MemoryManager memMgr = (MemoryManager)getCSession().getMemoryManager();
 		try {
 			varMgr.update();
 			regMgr.update();
+			memMgr.update();
 		} catch (CDIException e) {
 			//System.out.println(e);
 		}
Index: src/org/eclipse/cdt/debug/mi/core/cdi/MemoryBlock.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/cdi/MemoryBlock.java,v
retrieving revision 1.2
diff -u -r1.2 MemoryBlock.java
--- src/org/eclipse/cdt/debug/mi/core/cdi/MemoryBlock.java	13 Oct 2002 01:57:40 -0000	1.2
+++ src/org/eclipse/cdt/debug/mi/core/cdi/MemoryBlock.java	19 Oct 2002 19:14:38 -0000
@@ -13,14 +13,61 @@
 public class MemoryBlock extends CObject implements ICDIMemoryBlock {
 
 	MIDataReadMemoryInfo mem;
+	String expression;
 	boolean frozen;
 
-	public MemoryBlock(CTarget target, MIDataReadMemoryInfo info) {
+	public MemoryBlock(CTarget target, String exp, MIDataReadMemoryInfo info) {
 		super(target);
+		expression = exp;
 		mem = info;
 		frozen = true;
 	}
-	
+
+	/**
+	 * @return the expression use to create the block.
+	 */
+	public String getExpression() {
+		return expression;
+	}
+
+	/**
+	 * Reset the internal MIDataReadMemoryInfo.
+	 */
+	public void setMIDataReadMemoryInfo(MIDataReadMemoryInfo m) {
+		mem = m;
+	}
+
+	/**
+	 * @return the internal MIDataReadMemoryInfo.
+	 */
+	public MIDataReadMemoryInfo getMIDataReadMemoryInfo() {
+		return mem;
+	}
+
+	/**
+	 * @return true if any address in the array is within the block.
+	 */
+	public boolean contains(Long[] adds) {
+		for (int i = 0; i < adds.length; i++) {
+			if (contains(adds[i])) {
+				return true;
+			}
+		}
+		return false;
+	}
+
+	/**
+	 * @return true if the address is within the block.
+	 */
+	public boolean contains(Long addr) {
+		long start = getStartAddress();
+		long length = getLength();
+		if (start <= addr.longValue() && addr.longValue() <= start + length) {
+			return true;
+		}
+		return false;
+	}
+
 	/**
 	 * @see org.eclipse.cdt.debug.core.cdi.model.ICDIMemoryBlock#getBytes()
 	 */
Index: src/org/eclipse/cdt/debug/mi/core/cdi/MemoryChangedEvent.java
===================================================================
RCS file: src/org/eclipse/cdt/debug/mi/core/cdi/MemoryChangedEvent.java
diff -N src/org/eclipse/cdt/debug/mi/core/cdi/MemoryChangedEvent.java
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ src/org/eclipse/cdt/debug/mi/core/cdi/MemoryChangedEvent.java	19 Oct 2002 19:14:41 -0000
@@ -0,0 +1,50 @@
+/*
+ * (c) Copyright QNX Software Systems Ltd. 2002.
+ * All Rights Reserved.
+ */
+package org.eclipse.cdt.debug.mi.core.cdi;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.cdt.debug.core.cdi.event.ICDIMemoryChangedEvent;
+import org.eclipse.cdt.debug.core.cdi.model.ICDIObject;
+import org.eclipse.cdt.debug.mi.core.event.MIMemoryChangedEvent;
+
+/**
+ */
+public class MemoryChangedEvent implements ICDIMemoryChangedEvent {
+
+	CSession session;
+	MemoryBlock source;
+	MIMemoryChangedEvent miMem;
+
+	public MemoryChangedEvent(CSession s, MemoryBlock block, MIMemoryChangedEvent mem) {
+		session = s;
+		source = block;
+		miMem = mem;
+	}
+
+	/**
+	 * @see org.eclipse.cdt.debug.core.cdi.event.ICDIEvent#getAddresses()
+	 */
+	public Long[] getAddresses() {
+	 	/* But only returns the address that are in the block.  */
+		Long[] longs = miMem.getAddresses();
+		List aList = new ArrayList(longs.length);
+		for (int i = 0; i < longs.length; i++) {
+			if (source.contains(longs[i])) {
+				aList.add(longs[i]);
+			}
+		}
+		return (Long[])aList.toArray(new Long[0]);
+	}
+
+	/**
+	 * @see org.eclipse.cdt.debug.core.cdi.event.ICDIEvent#getSource()
+	 */
+	public ICDIObject getSource() {
+		return source;
+	}
+
+}
Index: src/org/eclipse/cdt/debug/mi/core/cdi/MemoryManager.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/cdi/MemoryManager.java,v
retrieving revision 1.7
diff -u -r1.7 MemoryManager.java
--- src/org/eclipse/cdt/debug/mi/core/cdi/MemoryManager.java	17 Oct 2002 14:29:51 -0000	1.7
+++ src/org/eclipse/cdt/debug/mi/core/cdi/MemoryManager.java	19 Oct 2002 19:14:38 -0000
@@ -16,6 +16,8 @@
 import org.eclipse.cdt.debug.mi.core.MISession;
 import org.eclipse.cdt.debug.mi.core.command.CommandFactory;
 import org.eclipse.cdt.debug.mi.core.command.MIDataReadMemory;
+import org.eclipse.cdt.debug.mi.core.event.MIEvent;
+import org.eclipse.cdt.debug.mi.core.event.MIMemoryChangedEvent;
 import org.eclipse.cdt.debug.mi.core.output.MIDataReadMemoryInfo;
 
 /**
@@ -30,38 +32,118 @@
 	}
 
 	/**
-	 * @see org.eclipse.cdt.debug.core.cdi.ICDIMemoryManager#createMemoryBlock(long, int)
+	 * This method will be call by the eventManager.processSuspended() every time the
+	 * inferior comes to a Stop/Suspended.  It will allow to look at the blocks that
+	 * are registered and fired any event if changed.
+	 * Note: Frozen blocks are not updated.
 	 */
-	public ICDIMemoryBlock createMemoryBlock(long address, int length)
-		throws CDIException {
-		String addr = "0x" + Long.toHexString(address);
-		return createMemoryBlock(addr, length);
+	public void update() {
+		MISession mi = getCSession().getMISession();
+		MemoryBlock[] blocks = listMemoryBlocks();
+		List eventList = new ArrayList(blocks.length);
+		for (int i = 0; i < blocks.length; i++) {
+			if (! blocks[i].isFrozen()) {
+				try {
+					MemoryBlock block = cloneBlock(blocks[i]);
+					Long[] array = compareBlocks(blocks[i], block);
+					if (array.length > 0) {
+						eventList.add(new MIMemoryChangedEvent(array));
+					}
+					// Update the block MIDataReadMemoryInfo.
+					blocks[i].setMIDataReadMemoryInfo(block.getMIDataReadMemoryInfo());
+				} catch (CDIException e) {
+				}
+			}
+		}
+		MIEvent[] events = (MIEvent[])eventList.toArray(new MIEvent[0]);
+		mi.fireEvents(events);
 	}
-		
+
 	/**
-	 * @see org.eclipse.cdt.debug.core.cdi.ICDIMemoryManager#createMemoryBlock(string, int)
+	 * @return the registers MemoryBlock.
 	 */
-	public ICDIMemoryBlock createMemoryBlock(String address, int length)
-		throws CDIException {
+	MemoryBlock[] listMemoryBlocks() {
+		return (MemoryBlock[])blockList.toArray(new MemoryBlock[0]);
+	}
+
+	/**
+	 * Compare two blocks and return an array of all _addresses_ that are different.
+	 * This method is not smart it always assume that:
+	 * oldBlock.getStartAddress() == newBlock.getStartAddress;
+	 * oldBlock.getLength() == newBlock.getLength();
+	 * @return Long[] array of modified addresses.
+	 */
+	Long[] compareBlocks (MemoryBlock oldBlock, MemoryBlock newBlock) throws CDIException {
+		if (oldBlock.getStartAddress() != newBlock.getStartAddress()) {
+			return new Long[0];
+		}
+		byte[] oldBytes = oldBlock.getBytes();
+		byte[] newBytes = newBlock.getBytes();
+		List aList = new ArrayList(oldBytes.length);
+		for (int i = 0; i < oldBytes.length; i++) {
+			if (i < newBytes.length) {
+				if (oldBytes[i] != newBytes[i]) {
+					aList.add(new Long(oldBlock.getStartAddress() + i));
+				}
+			}
+		}
+		return (Long[])aList.toArray(new Long[0]);
+	}
+
+	/**
+	 * Use the same expression and length of the original block
+	 * to create a new MemoryBlock.  The new block is not register
+	 * with the MemoryManager.
+	 */
+	MemoryBlock cloneBlock(MemoryBlock block) throws CDIException {
+		String exp = block.getExpression();
+		MIDataReadMemoryInfo info = createMIDataReadMemoryInfo(exp, (int)block.getLength());
+		return new MemoryBlock(getCSession().getCTarget(), exp, info);
+	}
+
+	/**
+	 * Post a -data-read-memory to gdb/mi.
+	 */
+	MIDataReadMemoryInfo createMIDataReadMemoryInfo(String exp, int length) throws CDIException {
 		MISession mi = getCSession().getMISession();
 		CommandFactory factory = mi.getCommandFactory();
-		MIDataReadMemory mem = factory.createMIDataReadMemory(0, address, MIFormat.HEXADECIMAL, 1, 1, length, null);
+		MIDataReadMemory mem = factory.createMIDataReadMemory(0, exp, MIFormat.HEXADECIMAL, 1, 1, length, null);
 		try {
 			mi.postCommand(mem);
 			MIDataReadMemoryInfo info = mem.getMIDataReadMemoryInfo();
-			MemoryBlock block = new MemoryBlock(getCSession().getCTarget(), info);
-			blockList.add(block);
-			return block;
+			if (info == null) {
+				throw new CDIException("No answer");
+			}
+			return info;
 		} catch (MIException e) {
 			throw new CDIException(e.getMessage());
 		}
 	}
 
 	/**
+	 * @see org.eclipse.cdt.debug.core.cdi.ICDIMemoryManager#createMemoryBlock(long, int)
+	 */
+	public ICDIMemoryBlock createMemoryBlock(long address, int length)
+		throws CDIException {
+		String addr = "0x" + Long.toHexString(address);
+		return createMemoryBlock(addr, length);
+	}
+		
+	/**
+	 * @see org.eclipse.cdt.debug.core.cdi.ICDIMemoryManager#createMemoryBlock(string, int)
+	 */
+	public ICDIMemoryBlock createMemoryBlock(String address, int length) throws CDIException {
+		MIDataReadMemoryInfo info = createMIDataReadMemoryInfo(address, length);
+		ICDIMemoryBlock block = new MemoryBlock(getCSession().getCTarget(), address, info);
+		blockList.add(block);
+		return block;
+	}
+
+	/**
 	 * @see org.eclipse.cdt.debug.core.cdi.ICDIMemoryManager#getBlocks()
 	 */
 	public ICDIMemoryBlock[] getMemoryBlocks() throws CDIException {
-		return (ICDIMemoryBlock[])blockList.toArray(new ICDIMemoryBlock[0]);
+		return (ICDIMemoryBlock[])listMemoryBlocks();
 	}
 
 	/**
Index: src/org/eclipse/cdt/debug/mi/core/event/MIMemoryChangedEvent.java
===================================================================
RCS file: src/org/eclipse/cdt/debug/mi/core/event/MIMemoryChangedEvent.java
diff -N src/org/eclipse/cdt/debug/mi/core/event/MIMemoryChangedEvent.java
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ src/org/eclipse/cdt/debug/mi/core/event/MIMemoryChangedEvent.java	19 Oct 2002 19:14:41 -0000
@@ -0,0 +1,24 @@
+/*
+ * (c) Copyright QNX Software Systems Ltd. 2002.
+ * All Rights Reserved.
+ *
+ */
+package org.eclipse.cdt.debug.mi.core.event;
+
+
+
+/**
+ * This can not be detected yet by gdb/mi.
+ *
+ */
+public class MIMemoryChangedEvent extends MIChangedEvent {
+
+	Long[] addresses;
+	public MIMemoryChangedEvent(Long[] addrs) {
+		addresses = addrs;
+	}
+
+	public Long[] getAddresses() {
+		return addresses;
+	}
+}
Index: src/org/eclipse/cdt/debug/mi/core/event/MIThreadExitEvent.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/event/MIThreadExitEvent.java,v
retrieving revision 1.1
diff -u -r1.1 MIThreadExitEvent.java
--- src/org/eclipse/cdt/debug/mi/core/event/MIThreadExitEvent.java	26 Aug 2002 05:24:14 -0000	1.1
+++ src/org/eclipse/cdt/debug/mi/core/event/MIThreadExitEvent.java	19 Oct 2002 19:14:41 -0000
@@ -12,13 +12,13 @@
  */
 public class MIThreadExitEvent extends MIEvent {
 
-		int tid;
+	int tid;
 
-		public MIThreadExitEvent(int id) {
-			tid = id;
-		}
+	public MIThreadExitEvent(int id) {
+		tid = id;
+	}
 
-		public int getId() {
-			return tid;
-		}
+	public int getId() {
+		return tid;
+	}
 }
Index: src/org/eclipse/cdt/debug/mi/core/event/MIVarChangedEvent.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/event/MIVarChangedEvent.java,v
retrieving revision 1.2
diff -u -r1.2 MIVarChangedEvent.java
--- src/org/eclipse/cdt/debug/mi/core/event/MIVarChangedEvent.java	2 Oct 2002 04:55:44 -0000	1.2
+++ src/org/eclipse/cdt/debug/mi/core/event/MIVarChangedEvent.java	19 Oct 2002 19:14:41 -0000
@@ -13,19 +13,19 @@
  */
 public class MIVarChangedEvent extends MIChangedEvent {
 
-		String varName;
-		boolean inScope;
+	String varName;
+	boolean inScope;
 
-		public MIVarChangedEvent(String var, boolean scope) {
-			varName = var;
-			inScope = scope;
-		}
+	public MIVarChangedEvent(String var, boolean scope) {
+		varName = var;
+		inScope = scope;
+	}
 
-		public String getVarName() {
-			return varName;
-		}
+	public String getVarName() {
+		return varName;
+	}
 
-		public boolean isInScope() {
-			return inScope;
-		}
+	public boolean isInScope() {
+		return inScope;
+	}
 }



Back to the top