xref: /linux-6.15/kernel/stacktrace.c (revision c624d33f)
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