X-Git-Url: http://git.lttng.org./?a=blobdiff_plain;f=ltt%2Fbranches%2Fpoly%2Flttv%2Fmodules%2Fgui%2Fcontrolflow%2Fdrawing.c;h=43b15af751357fcfb7c60be7ccc7280e36f1ba36;hb=c9b629ae28a1d55249875faad19607874e759724;hp=94f810899a61c0c34b987b8efa0925df6455f004;hpb=6cec4cd266bde25f87dad0a059fd98c7381eb8c2;p=lttv.git diff --git a/ltt/branches/poly/lttv/modules/gui/controlflow/drawing.c b/ltt/branches/poly/lttv/modules/gui/controlflow/drawing.c index 94f81089..43b15af7 100644 --- a/ltt/branches/poly/lttv/modules/gui/controlflow/drawing.c +++ b/ltt/branches/poly/lttv/modules/gui/controlflow/drawing.c @@ -72,7 +72,8 @@ GdkColor drawing_colors[NUM_COLORS] = { 0, 0x0000, 0xFF00, 0x0000 }, /* COL_RUN_USER_MODE : green */ { 0, 0x0100, 0x9E00, 0xFFFF }, /* COL_RUN_SYSCALL : pale blue */ { 0, 0xFF00, 0xFF00, 0x0100 }, /* COL_RUN_TRAP : yellow */ - { 0, 0xFFFF, 0x5E00, 0x0000 }, /* COL_RUN_IRQ : red */ + { 0, 0xFFFF, 0x5E00, 0x0000 }, /* COL_RUN_IRQ : orange */ + { 0, 0xFFFF, 0x9400, 0x9600 }, /* COL_RUN_SOFT_IRQ : pink */ { 0, 0x6600, 0x0000, 0x0000 }, /* COL_WAIT : dark red */ { 0, 0x7700, 0x7700, 0x0000 }, /* COL_WAIT_CPU : dark yellow */ { 0, 0x6400, 0x0000, 0x5D00 }, /* COL_ZOMBIE : dark purple */ @@ -219,12 +220,12 @@ void drawing_data_request(Drawing_t *drawing, associated by id hooks. */ hooks = g_array_new(FALSE, FALSE, sizeof(LttvTraceHook)); - hooks = g_array_set_size(hooks, 13); + hooks = g_array_set_size(hooks, 16); /* before hooks */ ret = lttv_trace_find_hook(ts->parent.t, - LTT_FACILITY_KERNEL, LTT_EVENT_SYSCALL_ENTRY, + LTT_FACILITY_KERNEL_ARCH, LTT_EVENT_SYSCALL_ENTRY, LTT_FIELD_SYSCALL_ID, 0, 0, before_execmode_hook, events_request, @@ -232,7 +233,7 @@ void drawing_data_request(Drawing_t *drawing, g_assert(!ret); ret = lttv_trace_find_hook(ts->parent.t, - LTT_FACILITY_KERNEL, LTT_EVENT_SYSCALL_EXIT, + LTT_FACILITY_KERNEL_ARCH, LTT_EVENT_SYSCALL_EXIT, 0, 0, 0, before_execmode_hook, events_request, @@ -271,12 +272,29 @@ void drawing_data_request(Drawing_t *drawing, &g_array_index(hooks, LttvTraceHook, 5)); g_assert(!ret); + ret = lttv_trace_find_hook(ts->parent.t, + LTT_FACILITY_KERNEL, LTT_EVENT_SOFT_IRQ_ENTRY, + LTT_FIELD_SOFT_IRQ_ID, 0, 0, + before_execmode_hook, + events_request, + &g_array_index(hooks, LttvTraceHook, 6)); + g_assert(!ret); + + ret = lttv_trace_find_hook(ts->parent.t, + LTT_FACILITY_KERNEL, LTT_EVENT_SOFT_IRQ_EXIT, + 0, 0, 0, + before_execmode_hook, + events_request, + &g_array_index(hooks, LttvTraceHook, 7)); + g_assert(!ret); + + ret = lttv_trace_find_hook(ts->parent.t, LTT_FACILITY_PROCESS, LTT_EVENT_SCHEDCHANGE, LTT_FIELD_OUT, LTT_FIELD_IN, LTT_FIELD_OUT_STATE, before_schedchange_hook, events_request, - &g_array_index(hooks, LttvTraceHook, 6)); + &g_array_index(hooks, LttvTraceHook, 8)); g_assert(!ret); ret = lttv_trace_find_hook(ts->parent.t, @@ -284,7 +302,7 @@ void drawing_data_request(Drawing_t *drawing, LTT_FIELD_PID, 0, 0, before_process_exit_hook, events_request, - &g_array_index(hooks, LttvTraceHook, 7)); + &g_array_index(hooks, LttvTraceHook, 9)); g_assert(!ret); ret = lttv_trace_find_hook(ts->parent.t, @@ -292,7 +310,7 @@ void drawing_data_request(Drawing_t *drawing, LTT_FIELD_PID, 0, 0, before_process_release_hook, events_request, - &g_array_index(hooks, LttvTraceHook, 8)); + &g_array_index(hooks, LttvTraceHook, 10)); g_assert(!ret); @@ -350,7 +368,7 @@ void drawing_data_request(Drawing_t *drawing, LTT_FIELD_OUT, LTT_FIELD_IN, LTT_FIELD_OUT_STATE, after_schedchange_hook, events_request, - &g_array_index(hooks, LttvTraceHook, 9)); + &g_array_index(hooks, LttvTraceHook, 11)); g_assert(!ret); ret = lttv_trace_find_hook(ts->parent.t, @@ -358,7 +376,7 @@ void drawing_data_request(Drawing_t *drawing, LTT_FIELD_PARENT_PID, LTT_FIELD_CHILD_PID, 0, after_process_fork_hook, events_request, - &g_array_index(hooks, LttvTraceHook, 10)); + &g_array_index(hooks, LttvTraceHook, 12)); g_assert(!ret); ret = lttv_trace_find_hook(ts->parent.t, @@ -366,7 +384,7 @@ void drawing_data_request(Drawing_t *drawing, LTT_FIELD_PID, 0, 0, after_process_exit_hook, events_request, - &g_array_index(hooks, LttvTraceHook, 11)); + &g_array_index(hooks, LttvTraceHook, 13)); g_assert(!ret); ret = lttv_trace_find_hook(ts->parent.t, @@ -374,7 +392,15 @@ void drawing_data_request(Drawing_t *drawing, 0, 0, 0, after_fs_exec_hook, events_request, - &g_array_index(hooks, LttvTraceHook, 12)); + &g_array_index(hooks, LttvTraceHook, 14)); + g_assert(!ret); + + ret = lttv_trace_find_hook(ts->parent.t, + LTT_FACILITY_STATEDUMP, LTT_EVENT_ENUM_PROCESS_STATE, + LTT_FIELD_PID, LTT_FIELD_PARENT_PID, LTT_FIELD_NAME, + after_event_enum_process_hook, + events_request, + &g_array_index(hooks, LttvTraceHook, 15)); g_assert(!ret); @@ -391,7 +417,7 @@ void drawing_data_request(Drawing_t *drawing, /* Add these hooks to each event_by_id hooks list */ /* add before */ - for(k = 0 ; k < 9 ; k++) { + for(k = 0 ; k < 11 ; k++) { hook = &g_array_index(hooks, LttvTraceHook, k); for(l=0;lfac_list->len;l++) { thf = g_array_index(hook->fac_list, LttvTraceHookByFacility*, l); @@ -403,7 +429,7 @@ void drawing_data_request(Drawing_t *drawing, } /* add after */ - for(k = 9 ; k < 13 ; k++) { + for(k = 11 ; k < 16 ; k++) { hook = &g_array_index(hooks, LttvTraceHook, k); for(l=0;lfac_list->len;l++) { thf = g_array_index(hook->fac_list, LttvTraceHookByFacility*, l); @@ -1004,6 +1030,7 @@ Drawing_t *drawing_construct(ControlFlowData *control_flow_data) G_CALLBACK (button_press_event), (gpointer)drawing); + gtk_widget_show(drawing->ruler); gtk_widget_show(drawing->padding); gtk_widget_show(drawing->ruler_hbox); @@ -1083,7 +1110,7 @@ void drawing_destroy(Drawing_t *drawing) if(drawing->gc != NULL) gdk_gc_unref(drawing->gc); - g_free(drawing->pango_layout); + g_object_unref(drawing->pango_layout); if(drawing->dotted_gc != NULL) gdk_gc_unref(drawing->dotted_gc); if(drawing->ruler_gc_butt != NULL) gdk_gc_unref(drawing->ruler_gc_butt); if(drawing->ruler_gc_round != NULL) gdk_gc_unref(drawing->ruler_gc_round);