From 92b10b9ca5e3523934cba6ef8c5ae8962cf06913 Mon Sep 17 00:00:00 2001 From: Alena Laskavaia Date: Thu, 8 Apr 2010 21:07:13 +0000 Subject: [PATCH] [304010] - exploring values of base class fields --- .../org/eclipse/cdt/debug/mi/core/cdi/model/Variable.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/Variable.java b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/Variable.java index c858e7137dd..0167a1bd940 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/Variable.java +++ b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/Variable.java @@ -256,12 +256,13 @@ public abstract class Variable extends VariableDescriptor implements ICDIVariabl } else if (cpp && childName.equals(vars[i].getType())) { // it is a base class (which is returned by GDB as a field) // (type of a child is the name of a child) + String childNameForCast = childName.contains("::") ? "'" + childName + "'" : childName; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ if (t instanceof ICDIPointerType) { // fn -> casting to pointer base class - fn = "(" + childName + "*)" + fn;//$NON-NLS-1$ //$NON-NLS-2$ + fn = "(struct " + childNameForCast + ")(*" + fn + ")";//$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ } else { // fn -> casting to base class - fn = "(" + childName + ")" + fn;//$NON-NLS-1$ //$NON-NLS-2$ + fn = "(struct " + childNameForCast + ")" + fn;//$NON-NLS-1$ //$NON-NLS-2$ } } else if (t instanceof ICDIArrayType) { // For Array gdb varobj only return the index, override here.