mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-28 09:05:12 +07:00
c0b766f13d
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>
19 lines
546 B
C
19 lines
546 B
C
#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
|