From d3d34f492bdbd2326ff345d8d1f84998df19f459 Mon Sep 17 00:00:00 2001 From: compudj Date: Sat, 20 Aug 2005 23:20:09 +0000 Subject: [PATCH] batchtest can now output the textdump git-svn-id: http://ltt.polymtl.ca/svn@1033 04897980-b3bd-0310-b5e0-8ef037075253 --- ltt/branches/poly/ltt/ltt-private.h | 1 + ltt/branches/poly/ltt/trace.h | 5 +++++ ltt/branches/poly/ltt/tracefile.c | 14 +++++++++++++- ltt/branches/poly/lttv/lttv/batchtest.c | 24 ++++++++++++++++++++---- 4 files changed, 39 insertions(+), 5 deletions(-) diff --git a/ltt/branches/poly/ltt/ltt-private.h b/ltt/branches/poly/ltt/ltt-private.h index 9ef7d481..c71c8fbc 100644 --- a/ltt/branches/poly/ltt/ltt-private.h +++ b/ltt/branches/poly/ltt/ltt-private.h @@ -308,6 +308,7 @@ typedef struct _LttBuffer { struct _LttTracefile{ gboolean cpu_online; //is the cpu online ? + GQuark long_name; //tracefile complete filename GQuark name; //tracefile name guint cpu_num; //cpu number of the tracefile LttTrace * trace; //trace containing the tracefile diff --git a/ltt/branches/poly/ltt/trace.h b/ltt/branches/poly/ltt/trace.h index e9b0ec7c..970e2918 100644 --- a/ltt/branches/poly/ltt/trace.h +++ b/ltt/branches/poly/ltt/trace.h @@ -81,6 +81,11 @@ void ltt_trace_time_span_get(LttTrace *t, LttTime *start, LttTime *end); GQuark ltt_tracefile_name(LttTracefile *tf); +/* get the cpu number of the tracefile */ + +guint ltt_tracefile_num(LttTracefile *tf); + +LttTrace *ltt_tracefile_get_trace(LttTracefile *tf); /* Get the number of blocks in the tracefile */ diff --git a/ltt/branches/poly/ltt/tracefile.c b/ltt/branches/poly/ltt/tracefile.c index 1b7e5ff7..c1fbbf3c 100644 --- a/ltt/branches/poly/ltt/tracefile.c +++ b/ltt/branches/poly/ltt/tracefile.c @@ -209,7 +209,7 @@ gint ltt_tracefile_open(LttTrace *t, gchar * fileName, LttTracefile *tf) int page_size = getpagesize(); //open the file - tf->name = g_quark_from_string(fileName); + tf->long_name = g_quark_from_string(fileName); tf->trace = t; tf->fd = open(fileName, O_RDONLY); if(tf->fd < 0){ @@ -274,6 +274,11 @@ end: return -1; } +LttTrace *ltt_tracefile_get_trace(LttTracefile *tf) +{ + return tf->trace; +} + #if 0 /***************************************************************************** *Open control and per cpu tracefiles @@ -680,6 +685,7 @@ static int open_tracefiles(LttTrace *trace, char *root_path, tmp_tf.cpu_online = 1; tmp_tf.cpu_num = num; + tmp_tf.name = name; group = g_datalist_id_get_data(&trace->tracefiles, name); if(group == NULL) { @@ -1195,6 +1201,12 @@ GQuark ltt_tracefile_name(LttTracefile *tf) return tf->name; } + +guint ltt_tracefile_num(LttTracefile *tf) +{ + return tf->cpu_num; +} + /***************************************************************************** * Get the number of blocks in the tracefile ****************************************************************************/ diff --git a/ltt/branches/poly/lttv/lttv/batchtest.c b/ltt/branches/poly/lttv/lttv/batchtest.c index 181734db..8bb37438 100644 --- a/ltt/branches/poly/lttv/lttv/batchtest.c +++ b/ltt/branches/poly/lttv/lttv/batchtest.c @@ -248,11 +248,20 @@ gboolean save_state_event(void *hook_data, void *call_data) } +static void sanitize_name(gchar *name) +{ + while(*name != '\0') { + if(*name == '/') *name = '_'; + name++; + } + +} + static void compute_tracefile(LttTracefile *tracefile, void *hook_data) { GString *filename; - guint i, j, nb_equal, nb_block, offset; + guint nb_equal, nb_block, offset; guint64 tsc; FILE *fp; LttTime time, previous_time; @@ -260,6 +269,7 @@ static void compute_tracefile(LttTracefile *tracefile, void *hook_data) LttFacility *facility; LttEventType *event_type; int err; + gchar mod_name[PATH_MAX]; /* start_count is always initialized in this function _if_ there is always * a block_start before a block_end. @@ -268,7 +278,12 @@ static void compute_tracefile(LttTracefile *tracefile, void *hook_data) filename = g_string_new(""); - g_string_printf(filename, "%s.%u.%u.trace", a_dump_tracefiles, i, j); + strcpy(mod_name, g_quark_to_string(ltt_tracefile_name(tracefile))); + + sanitize_name(mod_name); + + g_string_printf(filename, "%s.%s.%u.trace", a_dump_tracefiles, + mod_name, ltt_tracefile_num(tracefile)); fp = fopen(filename->str, "w"); if(fp == NULL) g_error("Cannot open %s", filename->str); g_string_free(filename, TRUE); @@ -295,8 +310,9 @@ static void compute_tracefile(LttTracefile *tracefile, void *hook_data) g_quark_to_string(ltt_tracefile_name(tracefile))); if(ltt_time_compare(time, previous_time) < 0) { - g_warning("Time decreasing trace %d tracefile %d position %u/%u", - i, j, nb_block, offset); + g_warning("Time decreasing trace %s tracefile %s position %u/%u", + g_quark_to_string(ltt_trace_name(ltt_tracefile_get_trace(tracefile))), + g_quark_to_string(ltt_tracefile_name(tracefile)), nb_block, offset); } #if 0 //FIXME -- 2.34.1