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 5cd4d081a49..ba7d910d6a0 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 @@ -39,6 +39,8 @@ public class MIStackListFramesInfo extends MIInfo { MIValue val = results[i].getMIValue(); if (val instanceof MIList) { parseStack((MIList)val, aList); + } else if (val instanceof MITuple) { + parseStack((MITuple)val, aList); } } } @@ -59,4 +61,18 @@ public class MIStackListFramesInfo extends MIInfo { } } } + + // Old gdb use tuple instead of a list. + void parseStack(MITuple tuple, List aList) { + MIResult[] results = tuple.getMIResults(); + for (int i = 0; i < results.length; i++) { + String var = results[i].getVariable(); + if (var.equals("frame")) { + MIValue value = results[i].getMIValue(); + if (value instanceof MITuple) { + aList.add (new MIFrame((MITuple)value)); + } + } + } + } }