GPtrArray *name;
guint nb,i;
gchar *module_name;
+ nb = lttv_library_module_number(library);
LttvModuleInfo *module_info = g_new(LttvModuleInfo,nb);
name = g_ptr_array_new();
- nb = lttv_library_module_number(library);
/* ask for the module name */
for(i=0;i<nb;i++){
GtkWidget *label2 = gtk_label_new("");
gtk_misc_set_padding(GTK_MISC(label2), 10, 20);
gtk_label_set_markup(GTK_LABEL(label2), "\
-Project author: Karim Yaghmour\n\
-\n\
Contributors :\n\
\n\
Michel Dagenais (New trace format, lttv main)\n\
Mathieu Desnoyers (Directory structure, build with automake/conf,\n\
- lttv gui, control flow view, gui green threads\n\
- with interruptible foreground and background computation,\n\
- detailed event list)\n\
-Benoit Des Ligneris (Cluster adaptation)\n\
+ lttv gui, control flow view, gui cooperative trace reading\n\
+ scheduler with interruptible foreground and background\n\
+ computation, detailed event list)\n\
+Benoit Des Ligneris, Eric Clement (Cluster adaptation, work in progress)\n\
Xang-Xiu Yang (new trace reading library and converter, lttv gui, \n\
detailed event list and statistics view)\n\
-Tom Zanussi (RelayFS)");
+Tom Zanussi (RelayFS)\n\
+\n\
+Strongly inspired from the original Linux Trace Toolkit Visualizer made by\n\
+Karim Yaghmour");
GtkWidget *label3 = gtk_label_new("");
gtk_label_set_markup(GTK_LABEL(label3), "\
-Linux Trace Toolkit, Copyright (C) 2004 Karim Yaghmour\n\
+Linux Trace Toolkit Viewer, Copyright (C) 2004\n\
+ Michel Dagenais\n\
+ Mathieu Desnoyers\n\
+ Xang-Xiu Yang\n\
Linux Trace Toolkit comes with ABSOLUTELY NO WARRANTY.\n\
This is free software, and you are welcome to redistribute it\n\
under certain conditions. See COPYING for details.");
ltt_trace_close(lttv_trace(trace));
}
}
- }
+ }
+ lttv_filter_destroy(tab->filter);
lttv_traceset_destroy(tab->traceset_info->traceset);
/* Remove the idle events requests processing function of the tab */
g_idle_remove_by_data(tab);
if(copy_tab) {
tab->traceset_info->traceset =
lttv_traceset_copy(copy_tab->traceset_info->traceset);
+
+ /* Copy the previous tab's filter */
+ /* We can clone the filter, as we copy the trace set also */
+ /* The filter must always be in sync with the trace set */
+ tab->filter = lttv_filter_clone(copy_tab->filter);
+
} else {
tab->traceset_info->traceset = lttv_traceset_new();
+ tab->filter = NULL;
}
#ifdef DEBUG