From 0d24c793131595db414209353579f81af2de393e Mon Sep 17 00:00:00 2001 From: Alain Magloire Date: Mon, 20 Dec 2004 17:42:14 +0000 Subject: [PATCH] 2004-12-20 Alain Magloire Fix for PR 81019 for MacOsX * mi/org/eclipse/cdt/debug/mi/core/output/MIVarListChildrenInfo.java --- debug/org.eclipse.cdt.debug.mi.core/ChangeLog | 4 +++ .../mi/core/output/MIVarListChildrenInfo.java | 32 ++++++++++++------- 2 files changed, 25 insertions(+), 11 deletions(-) diff --git a/debug/org.eclipse.cdt.debug.mi.core/ChangeLog b/debug/org.eclipse.cdt.debug.mi.core/ChangeLog index 17fb9fe0ae5..6b81b21dcee 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/ChangeLog +++ b/debug/org.eclipse.cdt.debug.mi.core/ChangeLog @@ -1,3 +1,7 @@ +2004-12-20 Alain Magloire + Fix for PR 81019 for MacOsX + * mi/org/eclipse/cdt/debug/mi/core/output/MIVarListChildrenInfo.java + 2004-11-26 Alain Magloire Make the deferred breakpoint on by default. * cdi/org/eclipose/cdt/debug/mi/core/cdi/SharedLibraryManager.java diff --git a/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/output/MIVarListChildrenInfo.java b/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/output/MIVarListChildrenInfo.java index 0af973d74ba..ff90ab55e6d 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/output/MIVarListChildrenInfo.java +++ b/debug/org.eclipse.cdt.debug.mi.core/mi/org/eclipse/cdt/debug/mi/core/output/MIVarListChildrenInfo.java @@ -53,9 +53,7 @@ public class MIVarListChildrenInfo extends MIInfo { } } } else if (var.equals("children")) { //$NON-NLS-1$ - if (value instanceof MITuple) { - parseChildren((MITuple)value, aList); - } + parseChildren(value, aList); } } } @@ -63,14 +61,26 @@ public class MIVarListChildrenInfo extends MIInfo { children = (MIVar[])aList.toArray(new MIVar[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")) { //$NON-NLS-1$ - MIValue value = results[i].getMIValue(); - if (value instanceof MITuple) { - aList.add(new MIVar((MITuple)value)); + /* + * Some gdb MacOSX do not return a MITuple so we have + * to check for different format. + * See PR 81019 + */ + void parseChildren(MIValue val, List aList) { + MIResult[] results = null; + if (val instanceof MITuple) { + results = ((MITuple)val).getMIResults(); + } else if (val instanceof MIList) { + results = ((MIList)val).getMIResults(); + } + if (results != null) { + for (int i = 0; i < results.length; i++) { + String var = results[i].getVariable(); + if (var.equals("child")) { //$NON-NLS-1$ + MIValue value = results[i].getMIValue(); + if (value instanceof MITuple) { + aList.add(new MIVar((MITuple)value)); + } } } }