diff --git a/debug/org.eclipse.cdt.debug.mi.core/.classpath b/debug/org.eclipse.cdt.debug.mi.core/.classpath
index 4ee934cafad..2821669df5f 100644
--- a/debug/org.eclipse.cdt.debug.mi.core/.classpath
+++ b/debug/org.eclipse.cdt.debug.mi.core/.classpath
@@ -4,5 +4,6 @@
diff --git a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIBreakPoint.java b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIBreakPoint.java index f37633e9e44..6f5aaf16b93 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIBreakPoint.java +++ b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIBreakPoint.java @@ -1,6 +1,12 @@ +/* + * (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. */ public class MIBreakPoint { diff --git a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIBreakWatchInfo.java b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIBreakWatchInfo.java index 2d6309f2769..601913ecca9 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIBreakWatchInfo.java +++ b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIBreakWatchInfo.java @@ -1,3 +1,8 @@ +/* + * (c) Copyright QNX Software Systems Ltd. 2002. + * All Rights Reserved. + */ + package org.eclipse.cdt.debug.mi.core.output; import java.util.ArrayList; @@ -6,7 +11,6 @@ import java.util.List; import org.eclipse.cdt.debug.mi.core.command.MIBreakInsert; - /** * -break-watch buf * ^done,wpt={number="2",exp="buf"} diff --git a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIChange.java b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIChange.java new file mode 100644 index 00000000000..a82a664ce5b --- /dev/null +++ b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIChange.java @@ -0,0 +1,35 @@ +/* + * (c) Copyright QNX Software Systems Ltd. 2002. + * All Rights Reserved. + */ +package org.eclipse.cdt.debug.mi.core.output; + +/** + * GDB/MI var-update. + */ + +public class MIChange { + String name; + boolean inScope; + boolean changed; + + public MIChange(String n) { + name = n; + } + + public boolean isInScope() { + return inScope; + } + + public boolean isChanged() { + return changed; + } + + public void setInScope(boolean b) { + inScope = b; + } + + public void setChanged(boolean c) { + changed = c; + } +} diff --git a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIChild.java b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIChild.java new file mode 100644 index 00000000000..714ed24ac72 --- /dev/null +++ b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIChild.java @@ -0,0 +1,58 @@ +/* + * (c) Copyright QNX Software Systems Ltd. 2002. + * All Rights Reserved. + */ +package org.eclipse.cdt.debug.mi.core.output; + +/** + * GDB/MI var-list-children + * -var-list-children var2 + * ^done,numchild="6",children={child={name="var2.0",exp="0",numchild="0",type="char"},child={name="var2.1",exp="1",numchild="0",type="char"},child={name="var2.2",exp="2",numchild="0",type="char"},child={name="var2.3",exp="3",numchild="0",type="char"},child={name="var2.4",exp="4",numchild="0",type="char"},child={name="var2.5",exp="5",numchild="0",type="char"}} + * + */ +public class MIChild { + + String name = ""; + String type = ""; + int numchild; + + + public MIChild(MITuple tuple) { + parse(tuple); + } + + public String getName() { + return name; + } + + public String getType() { + return type; + } + + public int getnumChild() { + return numchild; + } + + 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("numchild")) { + try { + numchild = Integer.parseInt(str.trim()); + } catch (NumberFormatException e) { + } + } else if (var.equals("name")) { + name = str; + } else if (var.equals("type")) { + type = str; + } + } + } +} diff --git a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIConsoleStreamOutput.java b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIConsoleStreamOutput.java index 022d8c7e465..8f6896fb032 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIConsoleStreamOutput.java +++ b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIConsoleStreamOutput.java @@ -1,6 +1,12 @@ +/* + * (c) Copyright QNX Software Systems Ltd. 2002. + * All Rights Reserved. + */ + package org.eclipse.cdt.debug.mi.core.output; /** + * @see MIStreamRecord */ public class MIConsoleStreamOutput extends MIStreamRecord { } diff --git a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIConst.java b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIConst.java index f9a519f353d..370c80fb211 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIConst.java +++ b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIConst.java @@ -1,6 +1,12 @@ +/* + * (c) Copyright QNX Software Systems Ltd. 2002. + * All Rights Reserved. + */ + package org.eclipse.cdt.debug.mi.core.output; /** + * GDB/MI const value represents a ios-c string. */ public class MIConst extends MIValue { String cstring = ""; diff --git a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIDataDisassembleInfo.java b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIDataDisassembleInfo.java index ec9a4a2f560..237f96644a1 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIDataDisassembleInfo.java +++ b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIDataDisassembleInfo.java @@ -1,9 +1,15 @@ +/* + * (c) Copyright QNX Software Systems Ltd. 2002. + * All Rights Reserved. + */ + package org.eclipse.cdt.debug.mi.core.output; import java.util.ArrayList; import java.util.List; /** + * GDB/MI disassemble parsing response. */ public class MIDataDisassembleInfo extends MIInfo { diff --git a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIDataEvaluateExpressionInfo.java b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIDataEvaluateExpressionInfo.java index 9a3f8c7321c..ecb262a1c6c 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIDataEvaluateExpressionInfo.java +++ b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIDataEvaluateExpressionInfo.java @@ -1,8 +1,13 @@ +/* + * (c) Copyright QNX Software Systems Ltd. 2002. + * All Rights Reserved. + */ + package org.eclipse.cdt.debug.mi.core.output; - /** + * GDB/MI Data evalue expression parsing response. */ public class MIDataEvaluateExpressionInfo extends MIInfo{ diff --git a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIDataListChangedRegistersInfo.java b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIDataListChangedRegistersInfo.java index 81cc44eddd5..e28597d356c 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIDataListChangedRegistersInfo.java +++ b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIDataListChangedRegistersInfo.java @@ -1,9 +1,14 @@ +/* + * (c) Copyright QNX Software Systems Ltd. 2002. + * All Rights Reserved. + */ package org.eclipse.cdt.debug.mi.core.output; import java.util.ArrayList; import java.util.List; /** + * GDB/MI data list changed registers response parsing. */ public class MIDataListChangedRegistersInfo extends MIInfo { diff --git a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIDataListRegisterNamesInfo.java b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIDataListRegisterNamesInfo.java index 1b6e4945508..1fa4eb6b0d6 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIDataListRegisterNamesInfo.java +++ b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIDataListRegisterNamesInfo.java @@ -1,9 +1,15 @@ +/* + * (c) Copyright QNX Software Systems Ltd. 2002. + * All Rights Reserved. + */ + package org.eclipse.cdt.debug.mi.core.output; import java.util.ArrayList; import java.util.List; /** + * GDB/MI data list regiter names response extraction. */ public class MIDataListRegisterNamesInfo extends MIInfo { diff --git a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIDataListRegisterValuesInfo.java b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIDataListRegisterValuesInfo.java index bbfb2fccd91..33223b9de8a 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIDataListRegisterValuesInfo.java +++ b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIDataListRegisterValuesInfo.java @@ -1,8 +1,12 @@ +/* + * (c) Copyright QNX Software Systems Ltd. 2002. + * All Rights Reserved. + */ + package org.eclipse.cdt.debug.mi.core.output; - - /** + * GDB/MI data list register values extraction. */ public class MIDataListRegisterValuesInfo extends MIInfo { diff --git a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIDataReadMemoryInfo.java b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIDataReadMemoryInfo.java index e66fdc760ca..343d5fc9969 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIDataReadMemoryInfo.java +++ b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIDataReadMemoryInfo.java @@ -1,11 +1,15 @@ +/* + * (c) Copyright QNX Software Systems Ltd. 2002. + * All Rights Reserved. + */ + package org.eclipse.cdt.debug.mi.core.output; import java.util.ArrayList; import java.util.List; - - /** + * GDB/MI data read memor info extraction. */ public class MIDataReadMemoryInfo extends MIInfo { diff --git a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIEnvironmentPWDInfo.java b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIEnvironmentPWDInfo.java index 9d3912e6c78..9a5ae3107b8 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIEnvironmentPWDInfo.java +++ b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIEnvironmentPWDInfo.java @@ -1,16 +1,50 @@ +/* + * (c) Copyright QNX Software Systems Ltd. 2002. + * All Rights Reserved. + */ + package org.eclipse.cdt.debug.mi.core.output; +import java.util.ArrayList; +import java.util.List; /** + * GDB/MI environment PWD info extraction. */ public class MIEnvironmentPWDInfo extends MIInfo { + String pwd = ""; + public MIEnvironmentPWDInfo(MIOutput o) { super(o); + parse(); } public String getWorkingDirectory() { - return "."; + return pwd; } + + void parse() { + if (isDone()) { + MIOutput out = getMIOutput(); + MIOOBRecord[] oobs = out.getMIOOBRecords(); + for (int i = 0; i < oobs.length; i++) { + if (oobs[i] instanceof MIConsoleStreamOutput) { + MIStreamRecord cons = (MIStreamRecord)oobs[i]; + String str = cons.getString(); + if (str.startsWith("Working directory")) { + int len = "Working directory".length(); + str = str.substring(len).trim(); + len = str.indexOf('.'); + if (len != -1) { + str = str.substring(0, len); + } + pwd = str; + } + } + } + } + } + } diff --git a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIExecAsyncOutput.java b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIExecAsyncOutput.java index cef0f3c4e9c..e08c6454780 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIExecAsyncOutput.java +++ b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIExecAsyncOutput.java @@ -1,6 +1,11 @@ +/* + * (c) Copyright QNX Software Systems Ltd. 2002. + * All Rights Reserved. + */ package org.eclipse.cdt.debug.mi.core.output; /** + * @see MIAsyncRecord */ public class MIExecAsyncOutput extends MIAsyncRecord { } diff --git a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIFrame.java b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIFrame.java index 79474b8c0be..7e1e22ddcce 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIFrame.java +++ b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIFrame.java @@ -1,6 +1,11 @@ +/* + * (c) Copyright QNX Software Systems Ltd. 2002. + * All Rights Reserved. + */ package org.eclipse.cdt.debug.mi.core.output; /** + * GDB/MI Frame tuple parsing. */ public class MIFrame { diff --git a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIGDBShowInfo.java b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIGDBShowInfo.java new file mode 100644 index 00000000000..22c0f0902e3 --- /dev/null +++ b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIGDBShowInfo.java @@ -0,0 +1,45 @@ +/* + * (c) Copyright QNX Software Systems Ltd. 2002. + * All Rights Reserved. + */ +package org.eclipse.cdt.debug.mi.core.output; + +import java.util.ArrayList; +import java.util.List; + + +/** + * GDB/MI show parsing. + */ +public class MIGDBShowInfo extends MIInfo { + + String value = ""; + + public MIGDBShowInfo(MIOutput o) { + super(o); + parse(); + } + + public String getValue() { + return value; + } + + void parse() { + if (isDone()) { + MIOutput out = getMIOutput(); + MIResultRecord rr = out.getMIResultRecord(); + if (rr != null) { + MIResult[] results = rr.getMIResults(); + for (int i = 0; i < results.length; i++) { + String var = results[i].getVariable(); + if (var.equals("value")) { + MIValue val = results[i].getMIValue(); + if (val instanceof MIConst) { + value = ((MIConst)val).getString(); + } + } + } + } + } + } +} diff --git a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIInfo.java b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIInfo.java index 49c80b362ba..eb275e63048 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIInfo.java +++ b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIInfo.java @@ -1,8 +1,11 @@ +/* + * (c) Copyright QNX Software Systems Ltd. 2002. + * All Rights Reserved. + */ package org.eclipse.cdt.debug.mi.core.output; - - /** + * Base class for teh parsing/info GDB/MI classes. */ public class MIInfo { diff --git a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIList.java b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIList.java index fc605ddfaea..54c84c21fae 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIList.java +++ b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIList.java @@ -1,6 +1,11 @@ +/* + * (c) Copyright QNX Software Systems Ltd. 2002. + * All Rights Reserved. + */ package org.eclipse.cdt.debug.mi.core.output; /** + * GDB/MI list semantic. */ public class MIList extends MIValue { diff --git a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MILogStreamOutput.java b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MILogStreamOutput.java index 698634e8be1..5430058b300 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MILogStreamOutput.java +++ b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MILogStreamOutput.java @@ -1,6 +1,11 @@ +/* + * (c) Copyright QNX Software Systems Ltd. 2002. + * All Rights Reserved. + */ package org.eclipse.cdt.debug.mi.core.output; /** + * @see MIStreamRecord */ public class MILogStreamOutput extends MIStreamRecord { diff --git a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIMemory.java b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIMemory.java index 289e7075033..f3b7d02150e 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIMemory.java +++ b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIMemory.java @@ -1,6 +1,11 @@ +/* + * (c) Copyright QNX Software Systems Ltd. 2002. + * All Rights Reserved. + */ package org.eclipse.cdt.debug.mi.core.output; /** + * GDB/MI memory parsing. */ public class MIMemory { long addr; diff --git a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MINotifyAsyncOutput.java b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MINotifyAsyncOutput.java index 99dd4c44be5..f050da04ae7 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MINotifyAsyncOutput.java +++ b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MINotifyAsyncOutput.java @@ -1,7 +1,11 @@ +/* + * (c) Copyright QNX Software Systems Ltd. 2002. + * All Rights Reserved. + */ package org.eclipse.cdt.debug.mi.core.output; /** - * + * @see MIAsyncRecord */ public class MINotifyAsyncOutput extends MIAsyncRecord { } diff --git a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIOOBRecord.java b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIOOBRecord.java index 24837d588ab..f6b4cba9160 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIOOBRecord.java +++ b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIOOBRecord.java @@ -1,7 +1,11 @@ +/* + * (c) Copyright QNX Software Systems Ltd. 2002. + * All Rights Reserved. + */ package org.eclipse.cdt.debug.mi.core.output; /** - * + * @see MIOOBRecord */ public abstract class MIOOBRecord { } diff --git a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIOutput.java b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIOutput.java index 0870dbf61e2..ff55dfe1265 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIOutput.java +++ b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIOutput.java @@ -1,6 +1,11 @@ +/* + * (c) Copyright QNX Software Systems Ltd. 2002. + * All Rights Reserved. + */ package org.eclipse.cdt.debug.mi.core.output; /** + * GDB/MI response. */ public class MIOutput { diff --git a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIParser.java b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIParser.java index 66e10954c30..d57c8209ce5 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIParser.java +++ b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIParser.java @@ -1,3 +1,7 @@ +/* + * (c) Copyright QNX Software Systems Ltd. 2002. + * All Rights Reserved. + */ package org.eclipse.cdt.debug.mi.core.output; import java.util.ArrayList; diff --git a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIRegisterValue.java b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIRegisterValue.java index fcc7b929c4a..d1d0c8e7641 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIRegisterValue.java +++ b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIRegisterValue.java @@ -1,3 +1,7 @@ +/* + * (c) Copyright QNX Software Systems Ltd. 2002. + * All Rights Reserved. + */ package org.eclipse.cdt.debug.mi.core.output; import java.util.ArrayList; @@ -6,6 +10,7 @@ import java.util.List; /** + * GDB/MI register response parsing. */ public class MIRegisterValue { int name; diff --git a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIResult.java b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIResult.java index 97b3516386a..1a9464a1ed9 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIResult.java +++ b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIResult.java @@ -1,6 +1,11 @@ +/* + * (c) Copyright QNX Software Systems Ltd. 2002. + * All Rights Reserved. + */ package org.eclipse.cdt.debug.mi.core.output; /** + * GDB/MI result sematic (Variable=Value) */ public class MIResult { String variable = ""; diff --git a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIResultRecord.java b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIResultRecord.java index 4744a4cfe25..b5d6a5c87b1 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIResultRecord.java +++ b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIResultRecord.java @@ -1,6 +1,11 @@ +/* + * (c) Copyright QNX Software Systems Ltd. 2002. + * All Rights Reserved. + */ package org.eclipse.cdt.debug.mi.core.output; /** + * GDB/MI ResultRecord. */ public class MIResultRecord { diff --git a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIStackInfoDepthInfo.java b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIStackInfoDepthInfo.java index b57b70dd56c..872ae47a614 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIStackInfoDepthInfo.java +++ b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIStackInfoDepthInfo.java @@ -1,8 +1,12 @@ +/* + * (c) Copyright QNX Software Systems Ltd. 2002. + * All Rights Reserved. + */ + package org.eclipse.cdt.debug.mi.core.output; - - /** + * GDB/MI stack info depth parsing. */ public class MIStackInfoDepthInfo extends MIInfo { diff --git a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIStackListArgumentsInfo.java b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIStackListArgumentsInfo.java index 14595ed8761..fba3a6ad9a7 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIStackListArgumentsInfo.java +++ b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIStackListArgumentsInfo.java @@ -1,11 +1,16 @@ +/* + * (c) Copyright QNX Software Systems Ltd. 2002. + * All Rights Reserved. + */ + package org.eclipse.cdt.debug.mi.core.output; import java.util.ArrayList; import java.util.List; - /** + * GDB/MI stack list arguments parsing. */ public class MIStackListArgumentsInfo extends MIInfo { diff --git a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIStackListFramesInfo.java b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIStackListFramesInfo.java index a4683eda962..2b89607ee22 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIStackListFramesInfo.java +++ b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIStackListFramesInfo.java @@ -1,11 +1,15 @@ +/* + * (c) Copyright QNX Software Systems Ltd. 2002. + * All Rights Reserved. + */ package org.eclipse.cdt.debug.mi.core.output; import java.util.ArrayList; import java.util.List; - /** + * GDB/MI stack list frames info. */ public class MIStackListFramesInfo extends MIInfo { diff --git a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIStackListLocalsInfo.java b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIStackListLocalsInfo.java index 73129e3c905..c3dd0c64917 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIStackListLocalsInfo.java +++ b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIStackListLocalsInfo.java @@ -1,8 +1,12 @@ +/* + * (c) Copyright QNX Software Systems Ltd. 2002. + * All Rights Reserved. + */ + package org.eclipse.cdt.debug.mi.core.output; - - /** + * GDB/MI stack list locals parsing. */ public class MIStackListLocalsInfo extends MIInfo { diff --git a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIStatusAsyncOutput.java b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIStatusAsyncOutput.java index 90160397b50..5bfa0d8a31c 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIStatusAsyncOutput.java +++ b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIStatusAsyncOutput.java @@ -1,6 +1,11 @@ +/* + * (c) Copyright QNX Software Systems Ltd. 2002. + * All Rights Reserved. + */ package org.eclipse.cdt.debug.mi.core.output; /** + * @see MIAsyncRecord */ public class MIStatusAsyncOutput extends MIAsyncRecord { diff --git a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIStreamRecord.java b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIStreamRecord.java index 9649b34edb7..7a357c54c70 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIStreamRecord.java +++ b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIStreamRecord.java @@ -1,6 +1,11 @@ +/* + * (c) Copyright QNX Software Systems Ltd. 2002. + * All Rights Reserved. + */ package org.eclipse.cdt.debug.mi.core.output; /** + * GDB/MI stream record response. */ public abstract class MIStreamRecord extends MIOOBRecord { diff --git a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MITargetStreamOutput.java b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MITargetStreamOutput.java index 8520a4ab827..2b6d25626b7 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MITargetStreamOutput.java +++ b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MITargetStreamOutput.java @@ -1,6 +1,11 @@ +/* + * (c) Copyright QNX Software Systems Ltd. 2002. + * All Rights Reserved. + */ package org.eclipse.cdt.debug.mi.core.output; /** + * @see MIStreamRecord */ public class MITargetStreamOutput extends MIStreamRecord { } diff --git a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIThreadListIdsInfo.java b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIThreadListIdsInfo.java index 93a87d6c910..0b2dc359a41 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIThreadListIdsInfo.java +++ b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIThreadListIdsInfo.java @@ -1,6 +1,11 @@ +/* + * (c) Copyright QNX Software Systems Ltd. 2002. + * All Rights Reserved. + */ package org.eclipse.cdt.debug.mi.core.output; /** + * GDB/MI thread list parsing. */ public class MIThreadListIdsInfo extends MIInfo { diff --git a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIThreadSelectInfo.java b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIThreadSelectInfo.java index 2216b590b91..289fcb05ed8 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIThreadSelectInfo.java +++ b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIThreadSelectInfo.java @@ -1,8 +1,11 @@ +/* + * (c) Copyright QNX Software Systems Ltd. 2002. + * All Rights Reserved. + */ package org.eclipse.cdt.debug.mi.core.output; - - /** + * GDB/MI thread select parsing. */ public class MIThreadSelectInfo extends MIInfo { diff --git a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MITuple.java b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MITuple.java index 8f0bf1f6271..6547d02b17e 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MITuple.java +++ b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MITuple.java @@ -1,6 +1,11 @@ +/* + * (c) Copyright QNX Software Systems Ltd. 2002. + * All Rights Reserved. + */ package org.eclipse.cdt.debug.mi.core.output; /** + * GDB/MI tuple value. */ public class MITuple extends MIValue { diff --git a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIValue.java b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIValue.java index c769f51199c..a44e98f80fe 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIValue.java +++ b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIValue.java @@ -1,12 +1,11 @@ +/* + * (c) Copyright QNX Software Systems Ltd. 2002. + * All Rights Reserved. + */ package org.eclipse.cdt.debug.mi.core.output; /** - * @author alain - * - * To change this generated comment edit the template variable "typecomment": - * Window>Preferences>Java>Templates. - * To enable and disable the creation of type comments go to - * Window>Preferences>Java>Code Generation. + * GDB/MI value. */ public abstract class MIValue { } diff --git a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIVarCreateInfo.java b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIVarCreateInfo.java index cddd217cd17..3258d2ecbfc 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIVarCreateInfo.java +++ b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIVarCreateInfo.java @@ -1,24 +1,64 @@ +/* + * (c) Copyright QNX Software Systems Ltd. 2002. + * All Rights Reserved. + */ package org.eclipse.cdt.debug.mi.core.output; - /** + * GDB/MI var-create. + * -var-create "-" * buf3 + * ^done,name="var1",numchild="6",type="char [6]" */ public class MIVarCreateInfo extends MIInfo { + String name = ""; + int children; + String type = ""; + public MIVarCreateInfo(MIOutput record) { super(record); + parse(); } public String getName () { - return ""; + return name; } public int getChildNumber() { - return 0; + return children; } public String getType() { - return ""; + return type; + } + + void parse() { + if (isDone()) { + MIOutput out = getMIOutput(); + MIResultRecord rr = out.getMIResultRecord(); + if (rr != null) { + MIResult[] results = rr.getMIResults(); + for (int i = 0; i < results.length; i++) { + String var = results[i].getVariable(); + MIValue value = results[i].getMIValue(); + String str = ""; + if (value instanceof MIConst) { + str = ((MIConst)value).getString(); + } + + if (var.equals("name")) { + name = str; + } else if (var.equals("numchild")) { + try { + children = Integer.parseInt(str.trim()); + } catch (NumberFormatException e) { + } + } else if (var.equals("type")) { + type = str; + } + } + } + } } } diff --git a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIVarDeleteInfo.java b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIVarDeleteInfo.java index 2d088b08e49..cf373773d72 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIVarDeleteInfo.java +++ b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIVarDeleteInfo.java @@ -1,16 +1,46 @@ +/* + * (c) Copyright QNX Software Systems Ltd. 2002. + * All Rights Reserved. + */ package org.eclipse.cdt.debug.mi.core.output; - /** + * GDB/MI var-delete. */ public class MIVarDeleteInfo extends MIInfo { + int ndeleted; + public MIVarDeleteInfo(MIOutput record) { super(record); + parse(); } public int getNumberDeleted () { - return 0; + return ndeleted; + } + + void parse() { + if (isDone()) { + MIOutput out = getMIOutput(); + MIResultRecord rr = out.getMIResultRecord(); + if (rr != null) { + MIResult[] results = rr.getMIResults(); + for (int i = 0; i < results.length; i++) { + String var = results[i].getVariable(); + if (var.equals("ndeleted")) { + MIValue value = results[i].getMIValue(); + if (value instanceof MIConst) { + String str = ((MIConst)value).getString(); + try { + ndeleted = Integer.parseInt(str.trim()); + } catch (NumberFormatException e) { + } + } + } + } + } + } } } diff --git a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIVarEvaluateExpressionInfo.java b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIVarEvaluateExpressionInfo.java index 5ea806374af..6161ba8c2c8 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIVarEvaluateExpressionInfo.java +++ b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIVarEvaluateExpressionInfo.java @@ -1,16 +1,41 @@ +/* + * (c) Copyright QNX Software Systems Ltd. 2002. + * All Rights Reserved. + */ package org.eclipse.cdt.debug.mi.core.output; - - /** + * GDB/MI var-evalute-expression */ public class MIVarEvaluateExpressionInfo extends MIInfo { + String value = ""; + public MIVarEvaluateExpressionInfo(MIOutput record) { super(record); + parse(); } public String getValue () { - return ""; + return value; + } + + void parse() { + if (isDone()) { + MIOutput out = getMIOutput(); + MIResultRecord rr = out.getMIResultRecord(); + if (rr != null) { + MIResult[] results = rr.getMIResults(); + for (int i = 0; i < results.length; i++) { + String var = results[i].getVariable(); + if (var.equals("name")) { + MIValue val = results[i].getMIValue(); + if (val instanceof MIConst) { + value = ((MIConst)val).getString(); + } + } + } + } + } } } diff --git a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIVarInfoExpressionInfo.java b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIVarInfoExpressionInfo.java index fa67693b6b7..3df7772a9a0 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIVarInfoExpressionInfo.java +++ b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIVarInfoExpressionInfo.java @@ -1,20 +1,51 @@ +/* + * (c) Copyright QNX Software Systems Ltd. 2002. + * All Rights Reserved. + */ package org.eclipse.cdt.debug.mi.core.output; - - /** + * GDB/MI var-info-expression. */ public class MIVarInfoExpressionInfo extends MIInfo { + String lang = ""; + String exp = ""; + public MIVarInfoExpressionInfo(MIOutput record) { super(record); + parse(); } public String getLanguage () { - return ""; + return lang; } public String getExpression() { - return ""; + return exp; + } + + void parse() { + if (isDone()) { + MIOutput out = getMIOutput(); + MIResultRecord rr = out.getMIResultRecord(); + if (rr != null) { + MIResult[] results = rr.getMIResults(); + for (int i = 0; i < results.length; i++) { + String var = results[i].getVariable(); + MIValue value = results[i].getMIValue(); + String str = ""; + if (value instanceof MIConst) { + str = ((MIConst)value).getString(); + } + + if (var.equals("lang")) { + lang = str; + } else if (var.equals("exp")) { + exp = str; + } + } + } + } } } diff --git a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIVarInfoNumChildrenInfo.java b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIVarInfoNumChildrenInfo.java index b2ec19826d7..c6d88a27558 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIVarInfoNumChildrenInfo.java +++ b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIVarInfoNumChildrenInfo.java @@ -1,16 +1,48 @@ +/* + * (c) Copyright QNX Software Systems Ltd. 2002. + * All Rights Reserved. + */ + package org.eclipse.cdt.debug.mi.core.output; - /** + * GDB/MI var-info-num-children. */ public class MIVarInfoNumChildrenInfo extends MIInfo { + int children; + public MIVarInfoNumChildrenInfo(MIOutput record) { super(record); + parse(); } public int getChildNumber() { - return 0; + return children; + } + + void parse() { + if (isDone()) { + MIOutput out = getMIOutput(); + MIResultRecord rr = out.getMIResultRecord(); + if (rr != null) { + MIResult[] results = rr.getMIResults(); + for (int i = 0; i < results.length; i++) { + String var = results[i].getVariable(); + + if (var.equals("numchild")) { + MIValue value = results[i].getMIValue(); + if (value instanceof MIConst) { + String str = ((MIConst)value).getString(); + try { + children = Integer.parseInt(str.trim()); + } catch (NumberFormatException e) { + } + } + } + } + } + } } } diff --git a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIVarInfoTypeInfo.java b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIVarInfoTypeInfo.java index 60e90229d1d..81b79e2ad18 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIVarInfoTypeInfo.java +++ b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIVarInfoTypeInfo.java @@ -1,16 +1,42 @@ +/* + * (c) Copyright QNX Software Systems Ltd. 2002. + * All Rights Reserved. + */ package org.eclipse.cdt.debug.mi.core.output; - /** + * GDB/MI var-info-type */ public class MIVarInfoTypeInfo extends MIInfo { + String type = ""; + public MIVarInfoTypeInfo(MIOutput record) { super(record); + parse(); } public String getType() { - return ""; + return type; + } + + void parse() { + if (isDone()) { + MIOutput out = getMIOutput(); + MIResultRecord rr = out.getMIResultRecord(); + if (rr != null) { + MIResult[] results = rr.getMIResults(); + for (int i = 0; i < results.length; i++) { + String var = results[i].getVariable(); + if (var.equals("type")) { + MIValue value = results[i].getMIValue(); + if (value instanceof MIConst) { + type = ((MIConst)value).getString(); + } + } + } + } + } } } diff --git a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIVarListChildrenInfo.java b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIVarListChildrenInfo.java index 3dff669d0f0..545573b84cb 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIVarListChildrenInfo.java +++ b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIVarListChildrenInfo.java @@ -1,22 +1,72 @@ +/* + * (c) Copyright QNX Software Systems Ltd. 2002. + * All Rights Reserved. + */ package org.eclipse.cdt.debug.mi.core.output; - +import java.util.ArrayList; +import java.util.List; /** + * GDB/MI var-list-children + * -var-list-children var2 + * ^done,numchild="6",children={child={name="var2.0",exp="0",numchild="0",type="char"},child={name="var2.1",exp="1",numchild="0",type="char"},child={name="var2.2",exp="2",numchild="0",type="char"},child={name="var2.3",exp="3",numchild="0",type="char"},child={name="var2.4",exp="4",numchild="0",type="char"},child={name="var2.5",exp="5",numchild="0",type="char"}} + * */ public class MIVarListChildrenInfo extends MIInfo { - public class Children { - String name; - int numchild; - String type; - } + MIChild[] children = new MIChild[0]; + int numchild; public MIVarListChildrenInfo(MIOutput record) { super(record); + parse(); } - public Children[] getChildren() { - return null; + public MIChild[] getChildren() { + return children; + } + + void parse() { + List aList = new ArrayList(); + if (isDone()) { + MIOutput out = getMIOutput(); + MIResultRecord rr = out.getMIResultRecord(); + if (rr != null) { + MIResult[] results = rr.getMIResults(); + for (int i = 0; i < results.length; i++) { + String var = results[i].getVariable(); + MIValue value = results[i].getMIValue(); + + if (var.equals("numchild")) { + if (value instanceof MIConst) { + String str = ((MIConst)value).getString(); + try { + numchild = Integer.parseInt(str.trim()); + } catch (NumberFormatException e) { + } + } + } else if (var.equals("children")) { + if (value instanceof MITuple) { + parseChildren((MITuple)value, aList); + } + } + } + } + } + children = (MIChild[])aList.toArray(new MIChild[aList.size()]); + } + + void parseChildren(MITuple tuple, List aList) { + MIResult[] results = tuple.getMIResults(); + for (int i = 0; i < results.length; i++) { + String var = results[i].getVariable(); + if (var.equals("child")) { + MIValue value = results[i].getMIValue(); + if (value instanceof MITuple) { + aList.add(new MIChild((MITuple)value)); + } + } + } } } diff --git a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIVarShowAttributesInfo.java b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIVarShowAttributesInfo.java index b806e863ecf..206ad6edac6 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIVarShowAttributesInfo.java +++ b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIVarShowAttributesInfo.java @@ -1,16 +1,41 @@ +/* + * (c) Copyright QNX Software Systems Ltd. 2002. + * All Rights Reserved. + */ package org.eclipse.cdt.debug.mi.core.output; - - /** + * GDB/MI var-show-attributes */ public class MIVarShowAttributesInfo extends MIInfo { + String attr = ""; + public MIVarShowAttributesInfo(MIOutput record) { super(record); + parse(); } - public String[] getAttributes () { - return null; + public String getAttributes () { + return attr; + } + + void parse() { + if (isDone()) { + MIOutput out = getMIOutput(); + MIResultRecord rr = out.getMIResultRecord(); + if (rr != null) { + MIResult[] results = rr.getMIResults(); + for (int i = 0; i < results.length; i++) { + String var = results[i].getVariable(); + if (var.equals("attr")) { + MIValue value = results[i].getMIValue(); + if (value instanceof MIConst) { + attr = ((MIConst)value).getString(); + } + } + } + } + } } } diff --git a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIVarShowFormatInfo.java b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIVarShowFormatInfo.java index 6f11a205f13..c1cf409503a 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIVarShowFormatInfo.java +++ b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIVarShowFormatInfo.java @@ -1,16 +1,54 @@ +/* + * (c) Copyright QNX Software Systems Ltd. 2002. + * All Rights Reserved. + */ package org.eclipse.cdt.debug.mi.core.output; - +import org.eclipse.cdt.debug.mi.core.MIFormat; /** + * GDB/MI var-show-format */ public class MIVarShowFormatInfo extends MIInfo { + int format = MIFormat.NATURAL; + public MIVarShowFormatInfo(MIOutput record) { super(record); + parse(); } public int getFormat() { - return 0; + return format; + } + + void parse() { + if (isDone()) { + MIOutput out = getMIOutput(); + MIResultRecord rr = out.getMIResultRecord(); + if (rr != null) { + MIResult[] results = rr.getMIResults(); + for (int i = 0; i < results.length; i++) { + String var = results[i].getVariable(); + if (var.equals("name")) { + MIValue value = results[i].getMIValue(); + if (value instanceof MIConst) { + String str = ((MIConst)value).getString(); + if ("binary".equals(str)) { + format = MIFormat.BINARY; + } else if ("decimal".equals(str)) { + format = MIFormat.DECIMAL; + } else if ("hexadecimal".equals(str)) { + format = MIFormat.HEXADECIMAL; + } else if ("octal".equals(str)) { + format = MIFormat.OCTAL; + } else if ("natural".equals(str)) { + format = MIFormat.NATURAL; + } + } + } + } + } + } } } diff --git a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIVarUpdateInfo.java b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIVarUpdateInfo.java index dd6de3fd110..2b553c99af0 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIVarUpdateInfo.java +++ b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIVarUpdateInfo.java @@ -1,8 +1,16 @@ +/* + * (c) Copyright QNX Software Systems Ltd. 2002. + * All Rights Reserved. + */ package org.eclipse.cdt.debug.mi.core.output; - +import java.util.ArrayList; +import java.util.List; /** + * GDB/MI var-update. + * -var-update * + * ^done,changelist={name="var3",in_scope="true",type_changed="false",name="var2",in_scope="true",type_changed="false"} */ public class MIVarUpdateInfo extends MIInfo { @@ -12,11 +20,60 @@ public class MIVarUpdateInfo extends MIInfo { boolean changed; } + MIChange[] changeList; + public MIVarUpdateInfo(MIOutput record) { super(record); + parse(); } - public Change[] getChangeList () { - return null; + public MIChange[] getChangeList () { + return changeList; + } + + void parse() { + List aList = new ArrayList(); + if (isDone()) { + MIOutput out = getMIOutput(); + MIResultRecord rr = out.getMIResultRecord(); + if (rr != null) { + MIResult[] results = rr.getMIResults(); + for (int i = 0; i < results.length; i++) { + String var = results[i].getVariable(); + if (var.equals("changelist")) { + MIValue value = results[i].getMIValue(); + if (value instanceof MITuple) { + parseChangeList((MITuple)value, aList); + } + } + } + } + } + changeList = (MIChange[])aList.toArray(new MIChange[aList.size()]); + } + + void parseChangeList(MITuple tuple, List aList) { + MIResult[] results = tuple.getMIResults(); + MIChange change = null; + for (int i = 0; i < results.length; i++) { + String var = results[i].getVariable(); + MIValue value = results[i].getMIValue(); + String str = ""; + if (value instanceof MIConst) { + str = ((MIConst)value).getString(); + } + if (var.equals("name")) { + change = new MIChange(str); + aList.add(change); + } else if (var.equals("in_scope")) { + if (change != null) { + change.setInScope("true".equals(str)); + } + } else if (var.equals("type_changed")) { + if (change != null) { + change.setChanged("true".equals(str)); + } + } + } } }