From cfde60c05a5acc9ff7e4bff8326f6ae6a83e3c7d Mon Sep 17 00:00:00 2001 From: Jonathan Herman Date: Fri, 21 Sep 2012 14:50:35 -0400 Subject: Fixed debug messaging --- kernel-shark.c | 4 ++-- rt-graph.c | 12 ++++++++++-- set_debug.sh | 4 ++++ trace-graph.c | 16 +++++++++++++--- trace-input.c | 2 +- 5 files changed, 30 insertions(+), 8 deletions(-) create mode 100755 set_debug.sh diff --git a/kernel-shark.c b/kernel-shark.c index 069a9c0..df51c8d 100644 --- a/kernel-shark.c +++ b/kernel-shark.c @@ -42,7 +42,7 @@ #define ___stringify(X) #X #define __stringify(X) ___stringify(X) -#define DEBUG_LEVEL 0 +#define DEBUG_LEVEL 0 #if DEBUG_LEVEL > 0 # define dprintf(l, x...) \ do { \ @@ -2421,7 +2421,7 @@ void kernel_shark(int argc, char **argv) info->ginfo->rtg_info.clean_records = clean; info->ginfo->rtg_info.start_offset = start; info->ginfo->rtg_info.duration = duration; - + widget = trace_graph_get_window(info->ginfo); gtk_paned_add1(GTK_PANED(vpaned), widget); gtk_widget_show(widget); diff --git a/rt-graph.c b/rt-graph.c index d9a3f82..5fa4aa4 100644 --- a/rt-graph.c +++ b/rt-graph.c @@ -208,8 +208,16 @@ int rt_graph_check_any(struct graph_info *ginfo, if (!field) field = add_ts_hash(rtg_info->events, eid, key, pevent, record); + if (!field) { + dprintf(2, "No field '%s' for rid %d\n", RT_TS_FIELD, eid); + *ts = 0; + } else { + dprintf(2, "Found field '%s' for rid %d\n", RT_TS_FIELD, eid); + pevent_read_number_field(field, record->data, ts); + } + *epid = pevent_data_pid(pevent, record); - pevent_read_number_field(field, record->data, ts); + dprintf(3, "Read (%d) record for task %d at %llu\n", eid, *epid, *ts); @@ -946,7 +954,7 @@ unsigned long long get_rts(struct graph_info *ginfo, struct record *record) { gint epid, eid; - unsigned long long ts; + unsigned long long ts = 0; if (!record->cached_rts) { rt_graph_check_any(ginfo, record, &epid, &eid, &ts); record->cached_rts = ts; diff --git a/set_debug.sh b/set_debug.sh new file mode 100755 index 0000000..95a8c74 --- /dev/null +++ b/set_debug.sh @@ -0,0 +1,4 @@ +#!/bin/bash +PATTERN="(define debug[a-z_]+\s*)[0-9]+" +sed -ri "s/$PATTERN/\\1$1/gi" *.[ch] +grep -HirE "$PATTERN" *.[ch] \ No newline at end of file diff --git a/trace-graph.c b/trace-graph.c index 0b2b7cf..c2f3574 100644 --- a/trace-graph.c +++ b/trace-graph.c @@ -35,7 +35,7 @@ #include "util.h" -#define DEBUG_LEVEL 0 +#define DEBUG_LEVEL 0 #if DEBUG_LEVEL > 0 # define dprintf(l, x...) \ do { \ @@ -1876,7 +1876,7 @@ static void draw_hashed_plots(struct graph_info *ginfo) clean = ginfo->rtg_info.clean_records; set_cpus_to_rts(ginfo, ginfo->view_start_time); - + max_time = ginfo->view_end_time; min_time = ginfo->view_start_time; @@ -1885,18 +1885,22 @@ static void draw_hashed_plots(struct graph_info *ginfo) if (get_rts(ginfo, record) < min_time) { free_record(record); + dprintf(3, "%llu < %llu, skipping\n", + get_rts(ginfo, record), min_time); continue; } if (get_rts(ginfo, record) > max_time) { free_record(record); + dprintf(3, "%llu > %llu, breaking\n", + get_rts(ginfo, record), min_time); break; } // TODO: hack to clean up until first release, make unhacky if (ginfo->rtg_info.clean_records && (ginfo->rtg_info.start_time == 0 || get_rts(ginfo, record) < ginfo->rtg_info.start_time)) { - unsigned long long dull, rel = 0; + unsigned long long dull, rel; char *dchar; int dint; @@ -1916,6 +1920,9 @@ static void draw_hashed_plots(struct graph_info *ginfo) ginfo->view_start_time = min_time; ginfo->start_time = min_time; + dprintf(3, "found release at %llu, min_time now %llu \n", + rel, min_time); + if (ginfo->rtg_info.duration) { max_time = MIN(max_time, min_time + ginfo->rtg_info.duration * NSECS_PER_SEC); ginfo->view_end_time = max_time; @@ -1929,6 +1936,9 @@ static void draw_hashed_plots(struct graph_info *ginfo) free_record(record); + dprintf(3, "haven't released yet, skipping %llu\n", + get_rts(ginfo, record)); + continue; } diff --git a/trace-input.c b/trace-input.c index 48dafe9..4ffe0ee 100644 --- a/trace-input.c +++ b/trace-input.c @@ -135,7 +135,7 @@ static const char *show_records(struct list_head *pages) memset(buf, 0, sizeof(buf)); len = 0; - list_for_each_entry(page, pages, struct page, list) { + list_for_each_entry(page, pages, list) { for (record = page->records; record; record = record->next) { int n; n = snprintf(buf+len, BUFSIZ - len, " 0x%lx", record->alloc_addr); -- cgit v1.2.2