Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEugene Tarassov2012-11-02 17:29:49 +0000
committerEugene Tarassov2012-11-02 17:29:49 +0000
commit13b4a18dc6c6ef000a485cc9f454a02ee7b13e3a (patch)
tree6d8cdc53528cbcd9eb2c6ba8d4c8d578f1e013ed /plugins
parent99af715ca121416c5367e481c7208941494b81f7 (diff)
downloadorg.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')
-rw-r--r--plugins/org.eclipse.tcf.debug.ui/src/org/eclipse/tcf/internal/debug/ui/model/TCFNodeExpression.java23
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;
}

Back to the top