diff options
author | Jonathan Herman <hermanjl@cs.unc.edu> | 2012-09-21 14:50:35 -0400 |
---|---|---|
committer | Jonathan Herman <hermanjl@cs.unc.edu> | 2012-09-21 14:50:35 -0400 |
commit | cfde60c05a5acc9ff7e4bff8326f6ae6a83e3c7d (patch) | |
tree | f64dff1cf16f0b243858620fabb41c60c8116001 | |
parent | 15f952eca67215e7bf1b28ae323635b0882135e2 (diff) |
Fixed debug messaging
-rw-r--r-- | kernel-shark.c | 4 | ||||
-rw-r--r-- | rt-graph.c | 12 | ||||
-rwxr-xr-x | set_debug.sh | 4 | ||||
-rw-r--r-- | trace-graph.c | 16 | ||||
-rw-r--r-- | trace-input.c | 2 |
5 files changed, 30 insertions, 8 deletions
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 @@ | |||
42 | #define ___stringify(X) #X | 42 | #define ___stringify(X) #X |
43 | #define __stringify(X) ___stringify(X) | 43 | #define __stringify(X) ___stringify(X) |
44 | 44 | ||
45 | #define DEBUG_LEVEL 0 | 45 | #define DEBUG_LEVEL 0 |
46 | #if DEBUG_LEVEL > 0 | 46 | #if DEBUG_LEVEL > 0 |
47 | # define dprintf(l, x...) \ | 47 | # define dprintf(l, x...) \ |
48 | do { \ | 48 | do { \ |
@@ -2421,7 +2421,7 @@ void kernel_shark(int argc, char **argv) | |||
2421 | info->ginfo->rtg_info.clean_records = clean; | 2421 | info->ginfo->rtg_info.clean_records = clean; |
2422 | info->ginfo->rtg_info.start_offset = start; | 2422 | info->ginfo->rtg_info.start_offset = start; |
2423 | info->ginfo->rtg_info.duration = duration; | 2423 | info->ginfo->rtg_info.duration = duration; |
2424 | 2424 | ||
2425 | widget = trace_graph_get_window(info->ginfo); | 2425 | widget = trace_graph_get_window(info->ginfo); |
2426 | gtk_paned_add1(GTK_PANED(vpaned), widget); | 2426 | gtk_paned_add1(GTK_PANED(vpaned), widget); |
2427 | gtk_widget_show(widget); | 2427 | gtk_widget_show(widget); |
@@ -208,8 +208,16 @@ int rt_graph_check_any(struct graph_info *ginfo, | |||
208 | if (!field) | 208 | if (!field) |
209 | field = add_ts_hash(rtg_info->events, eid, key, pevent, record); | 209 | field = add_ts_hash(rtg_info->events, eid, key, pevent, record); |
210 | 210 | ||
211 | if (!field) { | ||
212 | dprintf(2, "No field '%s' for rid %d\n", RT_TS_FIELD, eid); | ||
213 | *ts = 0; | ||
214 | } else { | ||
215 | dprintf(2, "Found field '%s' for rid %d\n", RT_TS_FIELD, eid); | ||
216 | pevent_read_number_field(field, record->data, ts); | ||
217 | } | ||
218 | |||
211 | *epid = pevent_data_pid(pevent, record); | 219 | *epid = pevent_data_pid(pevent, record); |
212 | pevent_read_number_field(field, record->data, ts); | 220 | |
213 | 221 | ||
214 | dprintf(3, "Read (%d) record for task %d at %llu\n", | 222 | dprintf(3, "Read (%d) record for task %d at %llu\n", |
215 | eid, *epid, *ts); | 223 | eid, *epid, *ts); |
@@ -946,7 +954,7 @@ unsigned long long | |||
946 | get_rts(struct graph_info *ginfo, struct record *record) | 954 | get_rts(struct graph_info *ginfo, struct record *record) |
947 | { | 955 | { |
948 | gint epid, eid; | 956 | gint epid, eid; |
949 | unsigned long long ts; | 957 | unsigned long long ts = 0; |
950 | if (!record->cached_rts) { | 958 | if (!record->cached_rts) { |
951 | rt_graph_check_any(ginfo, record, &epid, &eid, &ts); | 959 | rt_graph_check_any(ginfo, record, &epid, &eid, &ts); |
952 | record->cached_rts = ts; | 960 | 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 @@ | |||
1 | #!/bin/bash | ||
2 | PATTERN="(define debug[a-z_]+\s*)[0-9]+" | ||
3 | sed -ri "s/$PATTERN/\\1$1/gi" *.[ch] | ||
4 | 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 @@ | |||
35 | 35 | ||
36 | #include "util.h" | 36 | #include "util.h" |
37 | 37 | ||
38 | #define DEBUG_LEVEL 0 | 38 | #define DEBUG_LEVEL 0 |
39 | #if DEBUG_LEVEL > 0 | 39 | #if DEBUG_LEVEL > 0 |
40 | # define dprintf(l, x...) \ | 40 | # define dprintf(l, x...) \ |
41 | do { \ | 41 | do { \ |
@@ -1876,7 +1876,7 @@ static void draw_hashed_plots(struct graph_info *ginfo) | |||
1876 | clean = ginfo->rtg_info.clean_records; | 1876 | clean = ginfo->rtg_info.clean_records; |
1877 | 1877 | ||
1878 | set_cpus_to_rts(ginfo, ginfo->view_start_time); | 1878 | set_cpus_to_rts(ginfo, ginfo->view_start_time); |
1879 | 1879 | ||
1880 | max_time = ginfo->view_end_time; | 1880 | max_time = ginfo->view_end_time; |
1881 | min_time = ginfo->view_start_time; | 1881 | min_time = ginfo->view_start_time; |
1882 | 1882 | ||
@@ -1885,18 +1885,22 @@ static void draw_hashed_plots(struct graph_info *ginfo) | |||
1885 | 1885 | ||
1886 | if (get_rts(ginfo, record) < min_time) { | 1886 | if (get_rts(ginfo, record) < min_time) { |
1887 | free_record(record); | 1887 | free_record(record); |
1888 | dprintf(3, "%llu < %llu, skipping\n", | ||
1889 | get_rts(ginfo, record), min_time); | ||
1888 | continue; | 1890 | continue; |
1889 | } | 1891 | } |
1890 | 1892 | ||
1891 | if (get_rts(ginfo, record) > max_time) { | 1893 | if (get_rts(ginfo, record) > max_time) { |
1892 | free_record(record); | 1894 | free_record(record); |
1895 | dprintf(3, "%llu > %llu, breaking\n", | ||
1896 | get_rts(ginfo, record), min_time); | ||
1893 | break; | 1897 | break; |
1894 | } | 1898 | } |
1895 | 1899 | ||
1896 | // TODO: hack to clean up until first release, make unhacky | 1900 | // TODO: hack to clean up until first release, make unhacky |
1897 | if (ginfo->rtg_info.clean_records && | 1901 | if (ginfo->rtg_info.clean_records && |
1898 | (ginfo->rtg_info.start_time == 0 || get_rts(ginfo, record) < ginfo->rtg_info.start_time)) { | 1902 | (ginfo->rtg_info.start_time == 0 || get_rts(ginfo, record) < ginfo->rtg_info.start_time)) { |
1899 | unsigned long long dull, rel = 0; | 1903 | unsigned long long dull, rel; |
1900 | char *dchar; | 1904 | char *dchar; |
1901 | int dint; | 1905 | int dint; |
1902 | 1906 | ||
@@ -1916,6 +1920,9 @@ static void draw_hashed_plots(struct graph_info *ginfo) | |||
1916 | ginfo->view_start_time = min_time; | 1920 | ginfo->view_start_time = min_time; |
1917 | ginfo->start_time = min_time; | 1921 | ginfo->start_time = min_time; |
1918 | 1922 | ||
1923 | dprintf(3, "found release at %llu, min_time now %llu \n", | ||
1924 | rel, min_time); | ||
1925 | |||
1919 | if (ginfo->rtg_info.duration) { | 1926 | if (ginfo->rtg_info.duration) { |
1920 | max_time = MIN(max_time, min_time + ginfo->rtg_info.duration * NSECS_PER_SEC); | 1927 | max_time = MIN(max_time, min_time + ginfo->rtg_info.duration * NSECS_PER_SEC); |
1921 | ginfo->view_end_time = max_time; | 1928 | ginfo->view_end_time = max_time; |
@@ -1929,6 +1936,9 @@ static void draw_hashed_plots(struct graph_info *ginfo) | |||
1929 | 1936 | ||
1930 | free_record(record); | 1937 | free_record(record); |
1931 | 1938 | ||
1939 | dprintf(3, "haven't released yet, skipping %llu\n", | ||
1940 | get_rts(ginfo, record)); | ||
1941 | |||
1932 | continue; | 1942 | continue; |
1933 | } | 1943 | } |
1934 | 1944 | ||
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) | |||
135 | 135 | ||
136 | memset(buf, 0, sizeof(buf)); | 136 | memset(buf, 0, sizeof(buf)); |
137 | len = 0; | 137 | len = 0; |
138 | list_for_each_entry(page, pages, struct page, list) { | 138 | list_for_each_entry(page, pages, list) { |
139 | for (record = page->records; record; record = record->next) { | 139 | for (record = page->records; record; record = record->next) { |
140 | int n; | 140 | int n; |
141 | n = snprintf(buf+len, BUFSIZ - len, " 0x%lx", record->alloc_addr); | 141 | n = snprintf(buf+len, BUFSIZ - len, " 0x%lx", record->alloc_addr); |