tracing: stop stack trace on first empty entry
authorSteven Rostedt <srostedt@redhat.com>
Fri, 15 May 2009 03:40:06 +0000 (23:40 -0400)
committerSteven Rostedt <rostedt@goodmis.org>
Fri, 15 May 2009 03:40:06 +0000 (23:40 -0400)
The stack tracer stores eight entries in the ring buffer when an event
traces the stack. The output outputs all eight entries regardless of
how many entries were recorded.

This patch breaks out of the loop when a null entry is discovered.

[ Impact: only print the stack that is recorded ]

Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
kernel/trace/trace_output.c

index 8bd9a2c1a46a08b0bde704e0404cf86564a8f8ca..489c0e8ada0971af81dda363f7c1f02531a84d1a 100644 (file)
@@ -898,6 +898,8 @@ static enum print_line_t trace_stack_print(struct trace_iterator *iter,
        trace_assign_type(field, iter->ent);
 
        for (i = 0; i < FTRACE_STACK_ENTRIES; i++) {
+               if (!field->caller[i])
+                       break;
                if (i) {
                        if (!trace_seq_puts(s, " <= "))
                                goto partial;