diff options
author | Bjoern B. Brandenburg <bbb@cs.unc.edu> | 2007-10-28 22:06:43 -0400 |
---|---|---|
committer | Bjoern B. Brandenburg <bbb@cs.unc.edu> | 2007-10-28 22:06:43 -0400 |
commit | 8574756fb52c5feff4c552bdae6c2d8dfab4a0ba (patch) | |
tree | a09bbc30cad8ebce184745dd19d48e2f2e989b39 /src | |
parent | 63d82c5e16021d7ecdcb2716e092c326ef7f405f (diff) |
sched_trace: update format
Update to new format and fix a couple of bugs.
Diffstat (limited to 'src')
-rw-r--r-- | src/sched_trace.c | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/src/sched_trace.c b/src/sched_trace.c index 5dfbba4..18969bd 100644 --- a/src/sched_trace.c +++ b/src/sched_trace.c | |||
@@ -16,7 +16,7 @@ int walk_sched_trace(void* start, void* end, record_callback_t *cb) | |||
16 | { | 16 | { |
17 | void* pos = start; | 17 | void* pos = start; |
18 | trace_header_t* header; | 18 | trace_header_t* header; |
19 | int ret; | 19 | int ret = 0; |
20 | 20 | ||
21 | while (pos < end) { | 21 | while (pos < end) { |
22 | header = (trace_header_t*) pos; | 22 | header = (trace_header_t*) pos; |
@@ -36,7 +36,7 @@ int walk_sched_traces_ordered(void** start, void** end, unsigned int count, | |||
36 | { | 36 | { |
37 | void** pos; | 37 | void** pos; |
38 | trace_header_t* header; | 38 | trace_header_t* header; |
39 | int ret, i, adv; | 39 | int ret = 0, i, adv; |
40 | 40 | ||
41 | pos = malloc(sizeof(void*) * count); | 41 | pos = malloc(sizeof(void*) * count); |
42 | 42 | ||
@@ -51,9 +51,12 @@ int walk_sched_traces_ordered(void** start, void** end, unsigned int count, | |||
51 | ((trace_header_t*) pos[i])->timestamp)) { | 51 | ((trace_header_t*) pos[i])->timestamp)) { |
52 | header = (trace_header_t*) pos[i]; | 52 | header = (trace_header_t*) pos[i]; |
53 | adv = i; | 53 | adv = i; |
54 | } | 54 | } |
55 | if (header) { | 55 | if (header) { |
56 | pos[i] += header->size; | 56 | pos[adv] += header->size; |
57 | /* printf("header id: %d pos=%p adv=%d\n", | ||
58 | header->trace, pos[adv], adv); | ||
59 | */ | ||
57 | if (header->trace >= ST_MAX) | 60 | if (header->trace >= ST_MAX) |
58 | return INVALID_HEADER; | 61 | return INVALID_HEADER; |
59 | if (cb->handler[header->trace]) | 62 | if (cb->handler[header->trace]) |
@@ -124,16 +127,20 @@ int walk_sched_trace_files_ordered(const char** names, unsigned int count, | |||
124 | void **start, **end; | 127 | void **start, **end; |
125 | size_t *size; | 128 | size_t *size; |
126 | int i; | 129 | int i; |
127 | int ret; | 130 | int ret = 0; |
128 | 131 | ||
132 | /* printf("count=%d\n", count); */ | ||
133 | |||
129 | start = malloc(sizeof(void*) * count); | 134 | start = malloc(sizeof(void*) * count); |
130 | end = malloc(sizeof(void*) * count); | 135 | end = malloc(sizeof(void*) * count); |
131 | size = malloc(sizeof(size_t) * count); | 136 | size = malloc(sizeof(size_t) * count); |
132 | 137 | ||
133 | for (i = 0; i < count; i++) | 138 | for (i = 0; i < count; i++) |
134 | size[i] = 0; | 139 | size[i] = 0; |
135 | for (i = 0; i < count && !ret; i++) | 140 | for (i = 0; i < count && !ret; i++) { |
141 | /* printf("mapping %s\n", names[i]); */ | ||
136 | ret = map_trace(names[i], start + i, end + i, size + i); | 142 | ret = map_trace(names[i], start + i, end + i, size + i); |
143 | } | ||
137 | 144 | ||
138 | if (!ret) | 145 | if (!ret) |
139 | /* everything mapped, now walk it */ | 146 | /* everything mapped, now walk it */ |