diff options
author | Eugene Tarassov | 2012-11-02 17:29:49 +0000 |
---|---|---|
committer | Eugene Tarassov | 2012-11-02 17:29:49 +0000 |
commit | 13b4a18dc6c6ef000a485cc9f454a02ee7b13e3a (patch) | |
tree | 6d8cdc53528cbcd9eb2c6ba8d4c8d578f1e013ed /plugins/org.eclipse.tcf.debug.ui | |
parent | 99af715ca121416c5367e481c7208941494b81f7 (diff) | |
download | org.eclipse.tcf-13b4a18dc6c6ef000a485cc9f454a02ee7b13e3a.tar.gz org.eclipse.tcf-13b4a18dc6c6ef000a485cc9f454a02ee7b13e3a.tar.xz org.eclipse.tcf-13b4a18dc6c6ef000a485cc9f454a02ee7b13e3a.zip |
TCF Debugger: when expression value is not available because of an error, details pane still should show what available, e.g. address of the value
Diffstat (limited to 'plugins/org.eclipse.tcf.debug.ui')
-rw-r--r-- | plugins/org.eclipse.tcf.debug.ui/src/org/eclipse/tcf/internal/debug/ui/model/TCFNodeExpression.java | 23 |
1 files changed, 14 insertions, 9 deletions
diff --git a/plugins/org.eclipse.tcf.debug.ui/src/org/eclipse/tcf/internal/debug/ui/model/TCFNodeExpression.java b/plugins/org.eclipse.tcf.debug.ui/src/org/eclipse/tcf/internal/debug/ui/model/TCFNodeExpression.java index 2b0901954..1d470a223 100644 --- a/plugins/org.eclipse.tcf.debug.ui/src/org/eclipse/tcf/internal/debug/ui/model/TCFNodeExpression.java +++ b/plugins/org.eclipse.tcf.debug.ui/src/org/eclipse/tcf/internal/debug/ui/model/TCFNodeExpression.java @@ -1596,18 +1596,17 @@ public class TCFNodeExpression extends TCFNode implements IElementEditor, ICastT return true; } if (!rem_expression.validate(done)) return false; - if (!value.validate(done)) return false; - int pos = bf.length(); - bf.append(rem_expression.getError(), ColorCache.rgb_error); - if (bf.length() == pos) bf.append(value.getError(), ColorCache.rgb_error); - if (bf.length() == pos) { + if (rem_expression.getError() == null) { + if (!value.validate(done)) return false; IExpressions.Value v = value.getData(); if (v != null) { - byte[] data = v.getValue(); - if (data != null) { - boolean big_endian = v.isBigEndian(); - if (!appendValueText(bf, 0, v.getTypeID(), this, + if (value.getError() == null) { + byte[] data = v.getValue(); + if (data != null) { + boolean big_endian = v.isBigEndian(); + if (!appendValueText(bf, 0, v.getTypeID(), this, data, 0, data.length, big_endian, done)) return false; + } } int cnt = 0; String reg_id = v.getRegisterID(); @@ -1640,6 +1639,12 @@ public class TCFNodeExpression extends TCFNode implements IElementEditor, ICastT } if (cnt > 0) bf.append('\n'); } + if (value.getError() != null) { + bf.append(value.getError(), ColorCache.rgb_error); + } + } + else { + bf.append(rem_expression.getError(), ColorCache.rgb_error); } return true; } |