From 73e6c609eb72e2305c367b36bdc856da87ccb078 Mon Sep 17 00:00:00 2001 From: compudj Date: Mon, 5 Jun 2006 02:27:06 +0000 Subject: [PATCH] fix print style git-svn-id: http://ltt.polymtl.ca/svn@1890 04897980-b3bd-0310-b5e0-8ef037075253 --- ltt/branches/poly/ltt/parser.c | 18 ++-- ltt/branches/poly/lttv/lttv/print.c | 123 +++++++++++++++++++++------- ltt/branches/poly/lttv/lttv/print.h | 2 +- 3 files changed, 104 insertions(+), 39 deletions(-) diff --git a/ltt/branches/poly/ltt/parser.c b/ltt/branches/poly/ltt/parser.c index 3bc227cf..ab24a6c2 100644 --- a/ltt/branches/poly/ltt/parser.c +++ b/ltt/branches/poly/ltt/parser.c @@ -750,8 +750,10 @@ type_descriptor_t *parseType(parse_file_t *in, type_descriptor_t *inType, //getLAnglebracket(in); // /* subfield */ - f = (field_t *)memAlloc(sizeof(field_t)); - sequence_push(&(t->fields),f); + f = (field_t *)memAlloc(sizeof(field_t)); + + f->name = NULL; + sequence_push(&(t->fields),f); parseFields(in, f, unnamed_types, named_types, 0); //getLAnglebracket(in); // @@ -772,14 +774,16 @@ type_descriptor_t *parseType(parse_file_t *in, type_descriptor_t *inType, //getLAnglebracket(in); // /* subfield */ - f = (field_t *)memAlloc(sizeof(field_t)); - sequence_push(&(t->fields),f); + f = (field_t *)memAlloc(sizeof(field_t)); + f->name = NULL; + sequence_push(&(t->fields),f); parseFields(in, f, unnamed_types, named_types, 0); //getLAnglebracket(in); // /* subfield */ - f = (field_t *)memAlloc(sizeof(field_t)); - sequence_push(&(t->fields),f); + f = (field_t *)memAlloc(sizeof(field_t)); + f->name = NULL; + sequence_push(&(t->fields),f); parseFields(in, f, unnamed_types, named_types, 0); //getLAnglebracket(in); // @@ -838,7 +842,7 @@ type_descriptor_t *parseType(parse_file_t *in, type_descriptor_t *inType, str = allocAndCopy(getNameAttribute(in)); has_value = getValueAttribute(in, &loc_value); - sequence_push(&(t->labels),str); + sequence_push(&(t->labels),str); if(has_value) value = loc_value; else value++; diff --git a/ltt/branches/poly/lttv/lttv/print.c b/ltt/branches/poly/lttv/lttv/print.c index 6bcb2387..f06c527c 100644 --- a/ltt/branches/poly/lttv/lttv/print.c +++ b/ltt/branches/poly/lttv/lttv/print.c @@ -42,10 +42,10 @@ #include #include #include - +#include void lttv_print_field(LttEvent *e, LttField *f, GString *s, - gboolean field_names) { + gboolean field_names, guint element_index) { LttType *type; @@ -60,6 +60,13 @@ void lttv_print_field(LttEvent *e, LttField *f, GString *s, case LTT_LONG: case LTT_SSIZE_T: case LTT_INT_FIXED: + if(element_index > 0) + g_string_append_printf(s, ", "); + if(field_names) { + name = ltt_field_name(f); + if(name) + g_string_append_printf(s, "%s = ", g_quark_to_string(name)); + } g_string_append_printf(s, "%lld", ltt_event_get_long_int(e,f)); break; @@ -69,24 +76,67 @@ void lttv_print_field(LttEvent *e, LttField *f, GString *s, case LTT_SIZE_T: case LTT_OFF_T: case LTT_UINT_FIXED: + if(element_index > 0) + g_string_append_printf(s, ", "); + if(field_names) { + name = ltt_field_name(f); + if(name) + g_string_append_printf(s, "%s = ", g_quark_to_string(name)); + } g_string_append_printf(s, "%llu", ltt_event_get_long_unsigned(e,f)); break; case LTT_CHAR: - g_string_append_printf(s, "%c", ltt_event_get_int(e,f)); - break; case LTT_UCHAR: - g_string_append_printf(s, "%c", ltt_event_get_unsigned(e,f)); + { + unsigned car = ltt_event_get_unsigned(e,f); + if(field_names) { + name = ltt_field_name(f); + if(name) + g_string_append_printf(s, "%s = ", g_quark_to_string(name)); + } + if(isprint(car)) { + if(field_names) { + name = ltt_field_name(f); + if(name) + g_string_append_printf(s, "%s = ", g_quark_to_string(name)); + } + g_string_append_printf(s, "%c", car); + } else { + g_string_append_printf(s, "\\%x", car); + } + } break; case LTT_FLOAT: + if(element_index > 0) + g_string_append_printf(s, ", "); + if(field_names) { + name = ltt_field_name(f); + if(name) + g_string_append_printf(s, "%s = ", g_quark_to_string(name)); + } g_string_append_printf(s, "%g", ltt_event_get_double(e,f)); break; case LTT_POINTER: + if(element_index > 0) + g_string_append_printf(s, ", "); + if(field_names) { + name = ltt_field_name(f); + if(name) + g_string_append_printf(s, "%s = ", g_quark_to_string(name)); + } g_string_append_printf(s, "0x%llx", ltt_event_get_long_unsigned(e,f)); break; case LTT_STRING: + if(element_index > 0) + g_string_append_printf(s, ", "); + if(field_names) { + name = ltt_field_name(f); + if(name) + g_string_append_printf(s, "%s = ", g_quark_to_string(name)); + } g_string_append_printf(s, "\"%s\"", ltt_event_get_string(e,f)); break; @@ -94,6 +144,13 @@ void lttv_print_field(LttEvent *e, LttField *f, GString *s, { GQuark value = ltt_enum_string_get(type, ltt_event_get_unsigned(e,f)); + if(element_index > 0) + g_string_append_printf(s, ", "); + if(field_names) { + name = ltt_field_name(f); + if(name) + g_string_append_printf(s, "%s = ", g_quark_to_string(name)); + } if(value) g_string_append_printf(s, "%s", g_quark_to_string(value)); else @@ -103,44 +160,54 @@ void lttv_print_field(LttEvent *e, LttField *f, GString *s, case LTT_ARRAY: case LTT_SEQUENCE: + if(element_index > 0) + g_string_append_printf(s, ", "); + if(field_names) { + name = ltt_field_name(f); + if(name) + g_string_append_printf(s, "%s = ", g_quark_to_string(name)); + } g_string_append_printf(s, "{ "); nb = ltt_event_field_element_number(e,f); for(i = 0 ; i < nb ; i++) { LttField *child = ltt_event_field_element_select(e,f,i); - lttv_print_field(e, child, s, field_names); - if(i != nb-1) g_string_append_printf(s, ", "); + lttv_print_field(e, child, s, field_names, i); } g_string_append_printf(s, " }"); break; case LTT_STRUCT: + if(element_index > 0) + g_string_append_printf(s, ", "); + if(field_names) { + name = ltt_field_name(f); + if(name) + g_string_append_printf(s, "%s = ", g_quark_to_string(name)); + } g_string_append_printf(s, "{ "); nb = ltt_type_member_number(type); for(i = 0 ; i < nb ; i++) { LttField *element; element = ltt_field_member(f,i); - if(field_names) { - name = ltt_field_name(element); - g_string_append_printf(s, "%s = ", g_quark_to_string(name)); - } - lttv_print_field(e, element, s, field_names); - if(i != nb-1) g_string_append_printf(s, ", "); + lttv_print_field(e, element, s, field_names, i); } g_string_append_printf(s, " }"); break; case LTT_UNION: + if(element_index > 0) + g_string_append_printf(s, ", "); + if(field_names) { + name = ltt_field_name(f); + if(name) + g_string_append_printf(s, "%s = ", g_quark_to_string(name)); + } g_string_append_printf(s, "{ "); nb = ltt_type_member_number(type); for(i = 0 ; i < nb ; i++) { LttField *element; element = ltt_field_member(f,i); - if(field_names) { - name = ltt_field_name(element); - g_string_append_printf(s, "%s = ", g_quark_to_string(name)); - } - lttv_print_field(e, element, s, field_names); - if(i != nb-1) g_string_append_printf(s, ", "); + lttv_print_field(e, element, s, field_names, i); } g_string_append_printf(s, " }"); break; @@ -184,9 +251,9 @@ void lttv_event_to_string(LttEvent *e, GString *s, cpu); /* Print the process id and the state/interrupt type of the process */ g_string_append_printf(s,", %u, %s, %u, 0x%llX, %s", process->pid, - g_quark_to_string(process->name), - process->ppid, process->current_function, - g_quark_to_string(process->state->t)); + g_quark_to_string(process->name), + process->ppid, process->current_function, + g_quark_to_string(process->state->t)); } event_type = ltt_event_eventtype(e); @@ -196,13 +263,7 @@ void lttv_event_to_string(LttEvent *e, GString *s, g_string_append_printf(s, "{ "); for(i=0; i