[PATCH] Merge stacktrace and show_trace

This unifies the standard backtracer and the new stacktrace
in memory backtracer. The standard one is converted to use callbacks
and then reimplement stacktrace using new callbacks.

The main advantage is that stacktrace can now use the new dwarf2 unwinder
and avoid false positives in many cases.

I kept it simple to make sure the standard backtracer stays reliable.

Cc: mingo@elte.hu

Signed-off-by: Andi Kleen <ak@suse.de>
This commit is contained in:
Andi Kleen
2006-09-26 10:52:34 +02:00
committed by Andi Kleen
parent c9538ed492
commit c0b766f13d
3 changed files with 122 additions and 213 deletions

View File

@@ -0,0 +1,18 @@
#ifndef _ASM_STACKTRACE_H
#define _ASM_STACKTRACE_H 1
/* Generic stack tracer with callbacks */
struct stacktrace_ops {
void (*warning)(void *data, char *msg);
/* msg must contain %s for the symbol */
void (*warning_symbol)(void *data, char *msg, unsigned long symbol);
void (*address)(void *data, unsigned long address);
/* On negative return stop dumping */
int (*stack)(void *data, char *name);
};
void dump_trace(struct task_struct *tsk, struct pt_regs *regs, unsigned long *stack,
struct stacktrace_ops *ops, void *data);
#endif