Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[cdt-patch] Framework for array typecasting in MI

Index: ChangeLog
===================================================================
RCS file: /home/tools/org.eclipse.cdt.debug.mi.core/ChangeLog,v
retrieving revision 1.94
diff -u -r1.94 ChangeLog
--- ChangeLog	6 Feb 2003 04:16:43 -0000	1.94
+++ ChangeLog	7 Feb 2003 03:48:21 -0000
@@ -1,3 +1,12 @@
+2003-02-06 Alain Magloire
+
+	* src/org/eclipse/cdt/debug/mi/core/cdi/VariableManager.java (getVariableArrayObject):
+	New Method to type cast in an array.
+	* src/org/eclipse/cdt/debug/mi/core/cdi/model/VariableObject.java (VariableObject):
+	New constructor.
+	* src/org/eclipse/cdt/debug/mi/core/cdi/SignalManger.java(getSignal):
+	Return an signal object even when the session is terminated.
+
 2003-02-05 Alain Magloire
 
 	* src/org/eclipse/cdt/debug/mi/core/command/MISignal.java:
Index: src/org/eclipse/cdt/debug/mi/core/cdi/SignalManager.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/cdi/SignalManager.java,v
retrieving revision 1.13
diff -u -r1.13 SignalManager.java
--- src/org/eclipse/cdt/debug/mi/core/cdi/SignalManager.java	4 Feb 2003 19:14:52 -0000	1.13
+++ src/org/eclipse/cdt/debug/mi/core/cdi/SignalManager.java	7 Feb 2003 03:48:23 -0000
@@ -106,13 +106,17 @@
 	public ICDISignal getSignal(String name) {
 		ICDISignal sig = findSignal(name);
 		if (sig == null) {
+			MISigHandle miSig = null;
 			try {
-				MISigHandle miSig = getMISignal(name);
+				miSig = getMISignal(name);
 				sig = new Signal(this, miSig);
 				if (signalsList != null) {
 					signalsList.add(sig);
 				}
 			} catch (CDIException e) {
+				// The session maybe terminated because of the signal.
+				miSig = new MISigHandle(name, false, false, false, name);
+				sig = new Signal(this, miSig);
 			}
 		}
 		return sig;
Index: src/org/eclipse/cdt/debug/mi/core/cdi/VariableManager.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/cdi/VariableManager.java,v
retrieving revision 1.19
diff -u -r1.19 VariableManager.java
--- src/org/eclipse/cdt/debug/mi/core/cdi/VariableManager.java	29 Jan 2003 02:57:24 -0000	1.19
+++ src/org/eclipse/cdt/debug/mi/core/cdi/VariableManager.java	7 Feb 2003 03:48:24 -0000
@@ -294,6 +294,30 @@
 	}
 
 	/**
+	 * @see org.eclipse.cdt.debug.core.cdi.ICDIVariableManager#getVariableArrayObject(ICDIVariableObject, String, int, int)
+	 */
+	public ICDIVariableObject getVariableArrayObject(ICDIVariableObject object, String type, int start, int end) throws CDIException {
+		if (object instanceof VariableObject) {
+			VariableObject obj = (VariableObject)object;
+			StringBuffer buffer = new StringBuffer();
+			buffer.append("*(");
+			buffer.append('(');
+			if (type != null && type.length() > 0) {
+				buffer.append('(').append(type).append(')');
+			}
+			buffer.append(obj.getName());
+			buffer.append(')');
+			if (start != 0) {
+				buffer.append('+').append(start);
+			}
+			buffer.append(')');
+			buffer.append('@').append(end - start + 1);
+			return new VariableObject(obj, buffer.toString());
+		}
+		throw new CDIException("Unknown variable object");
+	}
+
+	/**
 	 * @see org.eclipse.cdt.debug.core.cdi.ICDIVariableManager#getVariableObjects(ICDIStackFrame)
 	 */
 	public ICDIVariableObject[] getVariableObjects(ICDIStackFrame frame) throws CDIException {
Index: src/org/eclipse/cdt/debug/mi/core/cdi/model/VariableObject.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/cdi/model/VariableObject.java,v
retrieving revision 1.2
diff -u -r1.2 VariableObject.java
--- src/org/eclipse/cdt/debug/mi/core/cdi/model/VariableObject.java	29 Jan 2003 02:56:27 -0000	1.2
+++ src/org/eclipse/cdt/debug/mi/core/cdi/model/VariableObject.java	7 Feb 2003 03:48:25 -0000
@@ -18,7 +18,13 @@
 	ICDIStackFrame frame;
 	int stackdepth;
 
-	public VariableObject(ICDITarget target, String n, ICDIStackFrame stack, int pos, int depth) {
+	public VariableObject(VariableObject obj, String n) {
+		this(obj.getTarget(), n, obj.getStackFrame(),
+			obj.getPosition(), obj.getStackDepth());
+	}
+
+	public VariableObject(ICDITarget target, String n, ICDIStackFrame stack,
+		int pos, int depth) {
 		super(target);
 		name = n;
 		frame = stack;



Back to the top