diff --git a/plugins/org.eclipse.dd.dsf.debug.ui/src/org/eclipse/dd/dsf/debug/ui/viewmodel/variable/VariableCellModifier.java b/plugins/org.eclipse.dd.dsf.debug.ui/src/org/eclipse/dd/dsf/debug/ui/viewmodel/variable/VariableCellModifier.java index 5948872679e..dc61745caee 100644 --- a/plugins/org.eclipse.dd.dsf.debug.ui/src/org/eclipse/dd/dsf/debug/ui/viewmodel/variable/VariableCellModifier.java +++ b/plugins/org.eclipse.dd.dsf.debug.ui/src/org/eclipse/dd/dsf/debug/ui/viewmodel/variable/VariableCellModifier.java @@ -9,6 +9,7 @@ package org.eclipse.dd.dsf.debug.ui.viewmodel.variable; import org.eclipse.core.runtime.IAdaptable; import org.eclipse.dd.dsf.debug.service.IFormattedValues; import org.eclipse.dd.dsf.debug.service.IExpressions.IExpressionDMContext; +import org.eclipse.dd.dsf.debug.service.IExpressions.IExpressionDMData; import org.eclipse.dd.dsf.debug.ui.viewmodel.IDebugVMConstants; import org.eclipse.dd.dsf.debug.ui.viewmodel.expression.WatchExpressionCellModifier; import org.eclipse.dd.dsf.debug.ui.viewmodel.numberformat.IFormattedValuePreferenceStore; @@ -53,6 +54,10 @@ public class VariableCellModifier extends WatchExpressionCellModifier { if (getVariableDMC(element) == null) return false; + IExpressionDMData exprData = fDataAccess.readVariable(element); + + if ( ( exprData != null ) && ( ! exprData.isEditable() ) ) return false; + return true ; } diff --git a/plugins/org.eclipse.dd.dsf.debug/src/org/eclipse/dd/dsf/debug/service/IExpressions.java b/plugins/org.eclipse.dd.dsf.debug/src/org/eclipse/dd/dsf/debug/service/IExpressions.java index 4158552a8c9..9919384dbb3 100644 --- a/plugins/org.eclipse.dd.dsf.debug/src/org/eclipse/dd/dsf/debug/service/IExpressions.java +++ b/plugins/org.eclipse.dd.dsf.debug/src/org/eclipse/dd/dsf/debug/service/IExpressions.java @@ -122,6 +122,11 @@ public interface IExpressions extends IFormattedValues { * This method needs to be defined. */ IRegisters.IRegisterDMContext getRegister(); + + /** + * @return True if this expression's value can be edited. False otherwise. + */ + boolean isEditable(); } /**