diff --git a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CDebugElement.java b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CDebugElement.java index 58df384f4f9..4354526a063 100644 --- a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CDebugElement.java +++ b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CDebugElement.java @@ -11,6 +11,8 @@ import org.eclipse.cdt.debug.core.CDebugModel; import org.eclipse.cdt.debug.core.cdi.CDIException; import org.eclipse.cdt.debug.core.cdi.ICDISession; import org.eclipse.cdt.debug.core.cdi.model.ICDITarget; +import org.eclipse.cdt.debug.internal.core.CDebugUtils; +import org.eclipse.cdt.debug.internal.core.ICDebugInternalConstants; import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.PlatformObject; import org.eclipse.core.runtime.Status; @@ -262,4 +264,14 @@ public class CDebugElement extends PlatformObject message, exception ) ); } + + protected void infoMessage( Throwable e ) + { + IStatus newStatus = new Status( IStatus.INFO, + CDebugCorePlugin.getUniqueIdentifier(), + ICDebugInternalConstants.STATUS_CODE_INFO, + e.getMessage(), + null ); + CDebugUtils.info( newStatus, getDebugTarget() ); + } } diff --git a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CStackFrame.java b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CStackFrame.java index 19890f956e0..594a0c40666 100644 --- a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CStackFrame.java +++ b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CStackFrame.java @@ -572,7 +572,7 @@ public class CStackFrame extends CDebugElement } catch( CDIException e ) { - targetRequestFailed( MessageFormat.format( "{0} occurred retrieving local variables", new String[] { e.toString() } ), e ); + targetRequestFailed( e.toString(), null ); } return list; } @@ -591,7 +591,7 @@ public class CStackFrame extends CDebugElement } catch( CDIException e ) { - targetRequestFailed( MessageFormat.format( "{0} occurred retrieving arguments", new String[] { e.toString() } ), e ); + targetRequestFailed( e.toString(), null ); } return list; } diff --git a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CThread.java b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CThread.java index 34a820238b9..76a96c255bc 100644 --- a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CThread.java +++ b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CThread.java @@ -246,11 +246,9 @@ public class CThread extends CDebugElement } catch( CDIException e ) { - requestFailed( MessageFormat.format( "{0} occurred retrieving stack frames.", new String[] { e.toString() } ), e ); - // execution will not reach this line, as - // #targetRequestFailed will thrown an exception - return null; + targetRequestFailed( e.getMessage(), null ); } + return new ICDIStackFrame[0]; } /** diff --git a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CValue.java b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CValue.java index 4e16817ae5b..bfa0de65625 100644 --- a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CValue.java +++ b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CValue.java @@ -12,10 +12,15 @@ import java.util.Collections; import java.util.Iterator; import java.util.List; +import org.eclipse.cdt.debug.core.CDebugCorePlugin; import org.eclipse.cdt.debug.core.ICValue; import org.eclipse.cdt.debug.core.cdi.CDIException; import org.eclipse.cdt.debug.core.cdi.model.ICDIValue; import org.eclipse.cdt.debug.core.cdi.model.ICDIVariable; +import org.eclipse.cdt.debug.internal.core.CDebugUtils; +import org.eclipse.cdt.debug.internal.core.ICDebugInternalConstants; +import org.eclipse.core.runtime.IStatus; +import org.eclipse.core.runtime.Status; import org.eclipse.debug.core.DebugException; import org.eclipse.debug.core.model.IValue; import org.eclipse.debug.core.model.IVariable; @@ -79,7 +84,7 @@ public class CValue extends CDebugElement implements ICValue } catch( CDIException e ) { - targetRequestFailed( "Operation failed. Reason: ", e ); + logError( e ); } return typeName; } @@ -97,8 +102,8 @@ public class CValue extends CDebugElement implements ICValue } catch( CDIException e ) { - // change this - requestFailed( "", e ); + logError( e ); + fValueString = e.getMessage(); } } return fValueString; @@ -160,7 +165,7 @@ public class CValue extends CDebugElement implements ICValue } catch( CDIException e ) { - targetRequestFailed( "Operation failed. Reason: ", e ); + targetRequestFailed( e.getMessage(), null ); } return false; } @@ -175,25 +180,27 @@ public class CValue extends CDebugElement implements ICValue protected List getCDIVariables() throws DebugException { + ICDIVariable[] vars = null; try { ICDIValue value = getUnderlyingValue(); if ( value != null ) { - ICDIVariable[] vars = value.getVariables(); - //Should throw an exception + vars = value.getVariables(); + // Quick fix. + // getVariables should return an empty array instead of null. if ( vars == null ) { vars = new ICDIVariable[0]; } - return Arrays.asList( vars ); } } catch( CDIException e ) { - targetRequestFailed( "Operation failed. Reason: ", e ); + vars = new ICDIVariable[0]; + infoMessage( e ); } - return Collections.EMPTY_LIST; + return Arrays.asList( vars ); } protected void calculateType( String stringValue ) @@ -241,7 +248,7 @@ public class CValue extends CDebugElement implements ICValue } catch( CDIException e ) { - targetRequestFailed( "Operation failed. Reason: ", e ); + targetRequestFailed( e.getMessage(), null ); } return result; } diff --git a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CVariable.java b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CVariable.java index 5db2a8470e9..72c9b574827 100644 --- a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CVariable.java +++ b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CVariable.java @@ -163,11 +163,9 @@ public abstract class CVariable extends CDebugElement } catch( CDIException e ) { - targetRequestFailed( MessageFormat.format( "{0} occurred retrieving value.", new String[] { e.toString() } ), e ); - // execution will not reach this line, as - // #targetRequestFailed will throw an exception - return null; + targetRequestFailed( e.toString(), null ); } + return null; } /**