#include <linux/kallsyms.h>
#include <linux/ftrace.h>
#include <linux/debug_locks.h>
-
+#include <asm/unwinder.h>
#include <asm/stacktrace.h>
void printk_address(unsigned long address, int reliable)
{ }
#endif
-/*
- * Unwind the call stack and pass information to the stacktrace_ops
- * functions.
- */
-void dump_trace(struct task_struct *task, struct pt_regs *regs,
- unsigned long *sp, const struct stacktrace_ops *ops,
- void *data)
+void
+stack_reader_dump(struct task_struct *task, struct pt_regs *regs,
+ unsigned long *sp, const struct stacktrace_ops *ops,
+ void *data)
{
struct thread_info *context;
int graph = 0;
}
}
}
-EXPORT_SYMBOL(dump_trace);
-
static void
print_trace_warning_symbol(void *data, char *msg, unsigned long symbol)
printk("\nCall trace:\n");
- dump_trace(tsk, regs, sp, &print_trace_ops, "");
+ unwind_stack(tsk, regs, sp, &print_trace_ops, "");
printk("\n");
#include <linux/stacktrace.h>
#include <linux/thread_info.h>
#include <linux/module.h>
+#include <asm/unwinder.h>
#include <asm/ptrace.h>
#include <asm/stacktrace.h>
{
unsigned long *sp = (unsigned long *)current_stack_pointer;
- dump_trace(current, NULL, sp, &save_stack_ops, trace);
+ unwind_stack(current, NULL, sp, &save_stack_ops, trace);
}
EXPORT_SYMBOL_GPL(save_stack_trace);
{
unsigned long *sp = (unsigned long *)tsk->thread.sp;
- dump_trace(current, NULL, sp, &save_stack_ops_nosched, trace);
+ unwind_stack(current, NULL, sp, &save_stack_ops_nosched, trace);
}
EXPORT_SYMBOL_GPL(save_stack_trace_tsk);
#include <linux/sched.h>
#include <linux/kallsyms.h>
#include <linux/mm.h>
+#include <asm/unwinder.h>
#include <asm/ptrace.h>
#include <asm/uaccess.h>
#include <asm/sections.h>
stackaddr = (unsigned long *)regs->regs[15];
if (!user_mode(regs)) {
if (depth)
- dump_trace(NULL, regs, stackaddr,
- &backtrace_ops, &depth);
+ unwind_stack(NULL, regs, stackaddr,
+ &backtrace_ops, &depth);
return;
}