X-Git-Url: http://git.lttng.org./?a=blobdiff_plain;f=ltt%2Fbranches%2Fpoly%2Flttv%2Fmodules%2Fgui%2Fcontrolflow%2Feventhooks.c;h=ab2cf623ae52ca54c33ebc99a43aa1294c6f3780;hb=ebf4f7355aa8bd24a81554b49c22b7d9f44503b0;hp=8a5c6b9ad8262fe07eacd03a9928b4cba83b4515;hpb=d0cd7f0949c2fd90d5a39361b192c9b2d96bf5d4;p=lttv.git diff --git a/ltt/branches/poly/lttv/modules/gui/controlflow/eventhooks.c b/ltt/branches/poly/lttv/modules/gui/controlflow/eventhooks.c index 8a5c6b9a..ab2cf623 100644 --- a/ltt/branches/poly/lttv/modules/gui/controlflow/eventhooks.c +++ b/ltt/branches/poly/lttv/modules/gui/controlflow/eventhooks.c @@ -152,7 +152,7 @@ int draw_event_hook(void *hook_data, void *call_data) LttvTracefileContext *tfc = (LttvTracefileContext *)call_data; LttvTracefileState *tfs = (LttvTracefileState *)call_data; - + LttvTraceState *ts =(LttvTraceState *)LTTV_TRACEFILE_CONTEXT(tfs)->t_context; LttEvent *e; e = tfc->e; @@ -193,9 +193,11 @@ int draw_event_hook(void *hook_data, void *call_data) /* Find process pid_out in the list... */ + //process_out = lttv_state_find_process_from_trace(ts, pid_out); process_out = lttv_state_find_process(tfs, pid_out); + if(process_out == NULL) return 0; g_critical("out : %s",g_quark_to_string(process_out->state->s)); - + birth = process_out->creation_time; gchar *name = strdup(g_quark_to_string(process_out->name)); HashedProcessData *hashed_process_data_out = NULL; @@ -229,7 +231,9 @@ int draw_event_hook(void *hook_data, void *call_data) g_free(name); /* Find process pid_in in the list... */ + //process_in = lttv_state_find_process_from_trace(ts, pid_in); process_in = lttv_state_find_process(tfs, pid_in); + if(process_in == NULL) return 0; g_critical("in : %s",g_quark_to_string(process_in->state->s)); birth = process_in->creation_time; @@ -749,6 +753,7 @@ int draw_after_hook(void *hook_data, void *call_data) LttvTracefileContext *tfc = (LttvTracefileContext *)call_data; LttvTracefileState *tfs = (LttvTracefileState *)call_data; + LttvTraceState *ts =(LttvTraceState *)LTTV_TRACEFILE_CONTEXT(tfs)->t_context; LttEvent *e; @@ -791,7 +796,8 @@ int draw_after_hook(void *hook_data, void *call_data) /* Find process pid_out in the list... */ - process_out = lttv_state_find_process(tfs, pid_out); + process_out = lttv_state_find_process_from_trace(ts, pid_out); + if(process_out == NULL) return 0; //g_critical("out : %s",g_quark_to_string(process_out->state->s)); birth = process_out->creation_time; @@ -827,7 +833,8 @@ int draw_after_hook(void *hook_data, void *call_data) g_free(name); /* Find process pid_in in the list... */ - process_in = lttv_state_find_process(tfs, pid_in); + process_in = lttv_state_find_process_from_trace(ts, pid_in); + if(process_in == NULL) return 0; //g_critical("in : %s",g_quark_to_string(process_in->state->s)); birth = process_in->creation_time; @@ -1519,7 +1526,7 @@ void draw_closure(gpointer key, gpointer value, gpointer user_data) draw_context->gc = gdk_gc_new(control_flow_data->drawing->pixmap); gdk_gc_copy(draw_context->gc, widget->style->black_gc); - if(process->state->s == LTTV_STATE_RUN) + if(process != NULL && process->state->s == LTTV_STATE_RUN) { PropertiesBG prop_bg; prop_bg.color = g_new(GdkColor,1); @@ -1566,47 +1573,57 @@ void draw_closure(gpointer key, gpointer value, gpointer user_data) prop_line.position = MIDDLE; /* color of line : status of the process */ - if(process->state->s == LTTV_STATE_UNNAMED) - { - prop_line.color->red = 0xffff; - prop_line.color->green = 0xffff; - prop_line.color->blue = 0xffff; - } - else if(process->state->s == LTTV_STATE_WAIT_FORK) - { - prop_line.color->red = 0x0fff; - prop_line.color->green = 0xffff; - prop_line.color->blue = 0xfff0; - } - else if(process->state->s == LTTV_STATE_WAIT_CPU) - { - prop_line.color->red = 0xffff; - prop_line.color->green = 0xffff; - prop_line.color->blue = 0x0000; - } - else if(process->state->s == LTTV_STATE_EXIT) - { - prop_line.color->red = 0xffff; - prop_line.color->green = 0x0000; - prop_line.color->blue = 0xffff; - } - else if(process->state->s == LTTV_STATE_WAIT) - { - prop_line.color->red = 0xffff; - prop_line.color->green = 0x0000; - prop_line.color->blue = 0x0000; - } - else if(process->state->s == LTTV_STATE_RUN) + if(process != NULL) { - prop_line.color->red = 0x0000; - prop_line.color->green = 0xffff; - prop_line.color->blue = 0x0000; + if(process->state->s == LTTV_STATE_UNNAMED) + { + prop_line.color->red = 0xffff; + prop_line.color->green = 0xffff; + prop_line.color->blue = 0xffff; + } + else if(process->state->s == LTTV_STATE_WAIT_FORK) + { + prop_line.color->red = 0x0fff; + prop_line.color->green = 0xffff; + prop_line.color->blue = 0xfff0; + } + else if(process->state->s == LTTV_STATE_WAIT_CPU) + { + prop_line.color->red = 0xffff; + prop_line.color->green = 0xffff; + prop_line.color->blue = 0x0000; + } + else if(process->state->s == LTTV_STATE_EXIT) + { + prop_line.color->red = 0xffff; + prop_line.color->green = 0x0000; + prop_line.color->blue = 0xffff; + } + else if(process->state->s == LTTV_STATE_WAIT) + { + prop_line.color->red = 0xffff; + prop_line.color->green = 0x0000; + prop_line.color->blue = 0x0000; + } + else if(process->state->s == LTTV_STATE_RUN) + { + prop_line.color->red = 0x0000; + prop_line.color->green = 0xffff; + prop_line.color->blue = 0x0000; + } + else + { + prop_line.color->red = 0xffff; + prop_line.color->green = 0xffff; + prop_line.color->blue = 0xffff; + } + } else { - prop_line.color->red = 0xffff; - prop_line.color->green = 0xffff; - prop_line.color->blue = 0xffff; + prop_line.color->red = 0xffff; + prop_line.color->green = 0xffff; + prop_line.color->blue = 0xffff; } draw_line((void*)&prop_line, (void*)draw_context);