diff options
author | Eugene Tarassov | 2014-09-18 01:03:38 +0000 |
---|---|---|
committer | Eugene Tarassov | 2014-09-18 01:03:38 +0000 |
commit | ff86d0db13e17c18c3ee0f7013ada26bd674433f (patch) | |
tree | 3570b7348939c4e68422acb3976ca500fd4ff6ab | |
parent | 06b2f6d76ca9fefc21007f4caa24600417681bb0 (diff) | |
download | org.eclipse.tcf.agent-ff86d0db13e17c18c3ee0f7013ada26bd674433f.tar.gz org.eclipse.tcf.agent-ff86d0db13e17c18c3ee0f7013ada26bd674433f.tar.xz org.eclipse.tcf.agent-ff86d0db13e17c18c3ee0f7013ada26bd674433f.zip |
TCF Agent: changed Expressions.evaluate to return value properties even if the value itself cannot be read from memory
-rw-r--r-- | agent/tcf/services/expressions.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/agent/tcf/services/expressions.c b/agent/tcf/services/expressions.c index e20d8af6..b2cb31a2 100644 --- a/agent/tcf/services/expressions.c +++ b/agent/tcf/services/expressions.c @@ -3827,6 +3827,7 @@ static void command_evaluate_cache_client(void * x) { int frame = STACK_NO_FRAME; Expression * e = NULL; Value value; + int value_ok = 0; void * buf = NULL; int err = 0; @@ -3838,6 +3839,7 @@ static void command_evaluate_cache_client(void * x) { expression_frame = frame; expression_addr = e->addr; if (evaluate_script(MODE_NORMAL, e->script, 0, &value) < 0) err = errno; + else value_ok = 1; } if (!err && value.remote && value.size <= 0x10000) { buf = tmp_alloc_zero((size_t)value.size); @@ -3864,7 +3866,7 @@ static void command_evaluate_cache_client(void * x) { write_stringz(&c->out, "null"); } write_errno(&c->out, err); - if (err) { + if (!value_ok) { write_stringz(&c->out, "null"); } else { |