From 1e57b57502e47eff379cfe8347bab61eadbcf3c0 Mon Sep 17 00:00:00 2001 From: Steven Rostedt Date: Wed, 29 Jun 2011 11:19:09 -0400 Subject: trace-cmd: Use size of record to determine kernel stack trace The kernel stack trace may soon become dynamic, and the size will depend on the size of the record and not the size of the stack array. Use the size of the record to determine the end of the stack output instead of the array. Signed-off-by: Steven Rostedt --- trace-ftrace.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/trace-ftrace.c b/trace-ftrace.c index 7be0ed6..d050738 100644 --- a/trace-ftrace.c +++ b/trace-ftrace.c @@ -354,7 +354,6 @@ trace_stack_handler(struct trace_seq *s, struct record *record, unsigned long long addr; const char *func; void *data = record->data; - int i; field = pevent_find_any_field(event, "caller"); if (!field) { @@ -366,9 +365,9 @@ trace_stack_handler(struct trace_seq *s, struct record *record, long_size_check(finfo); - for (i = 0; i < field->size; i += finfo->long_size) { - addr = pevent_read_number(event->pevent, - data + field->offset + i, finfo->long_size); + for (data += field->offset; data < record->data + record->size; + data += finfo->long_size) { + addr = pevent_read_number(event->pevent, data, finfo->long_size); if ((finfo->long_size == 8 && addr == (unsigned long long)-1) || ((int)addr == -1)) -- cgit v1.2.2