1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
|
#include <linux/string.h>
#include <linux/sched.h>
#include <linux/stacktrace.h>
#include <asm/stacktrace.h>
void foo(struct task_struct *foo);
void foo(struct task_struct *foo)
{
struct stack_trace trace;
unsigned long backtrace[20];
memset(&trace, 0, sizeof(trace));
trace.entries = &backtrace[0];
trace.max_entries = 20;
trace.skip = 0;
save_stack_trace_tsk(foo, &trace);
}
static const struct stacktrace_ops print_stack_ops;
void dumper(struct task_struct *foo)
{
dump_trace(foo, 0, 0, &print_stack_ops, 0);
}
|