Skip to main content
summaryrefslogtreecommitdiffstats
path: root/server
diff options
context:
space:
mode:
authoreutarass2011-06-13 14:09:55 -0400
committereutarass2011-06-13 14:09:55 -0400
commit617316e90aeec41d94aa85a086372a3c53be2bce (patch)
tree5c105e466c6536443e15171053930d88f0c92bbc /server
parent240fd28096b205ce5c8a1ac7a773e8729dd1d80f (diff)
downloadorg.eclipse.tcf.agent-617316e90aeec41d94aa85a086372a3c53be2bce.tar.gz
org.eclipse.tcf.agent-617316e90aeec41d94aa85a086372a3c53be2bce.tar.xz
org.eclipse.tcf.agent-617316e90aeec41d94aa85a086372a3c53be2bce.zip
Changes in Memory Map service implementation and UI:
1. Added new notification callback: void (*mapping_changed)(Context * ctx, void * client_data). 2. Manual memory map entries are now associated with full context name (including parent names) to avoid ambiguity. 3. TCF launch configuration now includes "Symbol Files" tab to allow editing of manual map entries as part of the launch configuration. 4. "Debug context" field of the memory map UI changed to combo box to allow a user to see/edit all maps associated with a launch.
Diffstat (limited to 'server')
-rw-r--r--server/services/context-proxy.c16
1 files changed, 9 insertions, 7 deletions
diff --git a/server/services/context-proxy.c b/server/services/context-proxy.c
index bd446c3f..99e14066 100644
--- a/server/services/context-proxy.c
+++ b/server/services/context-proxy.c
@@ -33,6 +33,7 @@
#include <framework/json.h>
#include <framework/cache.h>
#include <services/pathmap.h>
+#include <services/memorymap.h>
#include <services/stacktrace.h>
#include <services/context-proxy.h>
@@ -406,7 +407,6 @@ static void read_context_changed_item(InputStream * inp, void * args) {
c->can_resume = buf.can_resume;
c->can_count = buf.can_count;
c->can_terminate = buf.can_terminate;
- crear_memory_map_data(c);
send_context_changed_event(c->ctx);
}
else if (p->rc_done) {
@@ -609,7 +609,7 @@ static void event_memory_map_changed(Channel * c, void * args) {
if (ctx != NULL) {
assert(*EXT(ctx->ctx) == ctx);
crear_memory_map_data(ctx);
- send_context_changed_event(ctx->ctx);
+ memory_map_event_mapping_chnaged(ctx->ctx);
}
else if (p->rc_done) {
trace(LOG_ALWAYS, "Invalid ID in 'memory map changed' event: %s", id);
@@ -628,6 +628,8 @@ static void command_path_map_set(char * token, Channel * c, void * args) {
if (read_stream(p->fwd_inp) != MARKER_EOM) exception(ERR_JSON_SYNTAX);
}
+static void validate_peer_cache_children(Channel * c, void * args, int error);
+
void create_context_proxy(Channel * host, Channel * target, int forward_pm) {
int i;
LINK * l;
@@ -654,6 +656,11 @@ void create_context_proxy(Channel * host, Channel * target, int forward_pm) {
add_event_handler2(target, RUN_CONTROL, "containerResumed", event_container_resumed, p);
add_event_handler2(target, MEMORY_MAP, "changed", event_memory_map_changed, p);
if (forward_pm) add_command_handler2(host->protocol, PATH_MAP, "set", command_path_map_set, p);
+ /* Retirve initila set of run control contexts */
+ protocol_send_command(p->target, "RunControl", "getChildren", validate_peer_cache_children, p);
+ write_stringz(&p->target->out, "null");
+ write_stream(&p->target->out, MARKER_EOM);
+ p->rc_pending_cnt++;
}
static void validate_peer_cache_context(Channel * c, void * args, int error);
@@ -838,10 +845,6 @@ Context * id2ctx(const char * id) {
set_error_report_errno(p->rc_error);
}
else if (!p->rc_done) {
- protocol_send_command(p->target, "RunControl", "getChildren", validate_peer_cache_children, p);
- write_stringz(&p->target->out, "null");
- write_stream(&p->target->out, MARKER_EOM);
- p->rc_pending_cnt++;
cache_wait(&p->rc_cache);
}
else {
@@ -858,7 +861,6 @@ int context_has_state(Context * ctx) {
}
Context * context_get_group(Context * ctx, int group) {
- /* TODO: context proxy: context_get_group() */
switch (group) {
case CONTEXT_GROUP_INTERCEPT:
return ctx;

Back to the top