18637c099SIngo Molnar /* 28637c099SIngo Molnar * kernel/stacktrace.c 38637c099SIngo Molnar * 48637c099SIngo Molnar * Stack trace management functions 58637c099SIngo Molnar * 68637c099SIngo Molnar * Copyright (C) 2006 Red Hat, Inc., Ingo Molnar <[email protected]> 78637c099SIngo Molnar */ 88637c099SIngo Molnar #include <linux/sched.h> 99212ddb5SIngo Molnar #include <linux/kernel.h> 108594698eSIngo Molnar #include <linux/module.h> 118637c099SIngo Molnar #include <linux/kallsyms.h> 128637c099SIngo Molnar #include <linux/stacktrace.h> 138637c099SIngo Molnar 148637c099SIngo Molnar void print_stack_trace(struct stack_trace *trace, int spaces) 158637c099SIngo Molnar { 16a5a242dcSVegard Nossum int i; 178637c099SIngo Molnar 18bfeeeeb9SJohannes Berg if (WARN_ON(!trace->entries)) 19bfeeeeb9SJohannes Berg return; 20bfeeeeb9SJohannes Berg 218637c099SIngo Molnar for (i = 0; i < trace->nr_entries; i++) { 22a5a242dcSVegard Nossum printk("%*c", 1 + spaces, ' '); 23a5a242dcSVegard Nossum print_ip_sym(trace->entries[i]); 248637c099SIngo Molnar } 258637c099SIngo Molnar } 268594698eSIngo Molnar EXPORT_SYMBOL_GPL(print_stack_trace); 278637c099SIngo Molnar 289212ddb5SIngo Molnar /* 29*c624d33fSMasami Hiramatsu * Architectures that do not implement save_stack_trace_tsk or 30*c624d33fSMasami Hiramatsu * save_stack_trace_regs get this weak alias and a once-per-bootup warning 31*c624d33fSMasami Hiramatsu * (whenever this facility is utilized - for example by procfs): 329212ddb5SIngo Molnar */ 339212ddb5SIngo Molnar __weak void 349212ddb5SIngo Molnar save_stack_trace_tsk(struct task_struct *tsk, struct stack_trace *trace) 359212ddb5SIngo Molnar { 369212ddb5SIngo Molnar WARN_ONCE(1, KERN_INFO "save_stack_trace_tsk() not implemented yet.\n"); 379212ddb5SIngo Molnar } 38*c624d33fSMasami Hiramatsu 39*c624d33fSMasami Hiramatsu __weak void 40*c624d33fSMasami Hiramatsu save_stack_trace_regs(struct pt_regs *regs, struct stack_trace *trace) 41*c624d33fSMasami Hiramatsu { 42*c624d33fSMasami Hiramatsu WARN_ONCE(1, KERN_INFO "save_stack_trace_regs() not implemented yet.\n"); 43*c624d33fSMasami Hiramatsu } 44