[
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;