From 331a2a442b2c8595002d342372d4d08f104b382d Mon Sep 17 00:00:00 2001 From: Freya Murphy Date: Tue, 8 Apr 2025 17:55:13 -0400 Subject: backtrace --- kernel/include/lib/klib.h | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) (limited to 'kernel/include/lib/klib.h') diff --git a/kernel/include/lib/klib.h b/kernel/include/lib/klib.h index c67e57d..3afe925 100644 --- a/kernel/include/lib/klib.h +++ b/kernel/include/lib/klib.h @@ -193,4 +193,30 @@ unsigned int bound(unsigned int min, unsigned int value, unsigned int max); */ __attribute__((noreturn)) void panic(const char *format, ...); +/** + * Fill dst with a stack trace consisting of return addresses in order + * from top to bottom + * + * @returns number of backtraces (at most len) + */ +size_t backtrace(void **dst, size_t len); + +/** + * Fill dst with a stack trace consisting of return addresses in order + * from top to bottom, starting at a provided ip/bp + * + * @returns number of backtraces (at most len) + */ +size_t backtrace_ex(void **dst, size_t len, void *ip, void *bp); + +/** + * Log a backtrace to output + */ +void log_backtrace(void); + +/** + * Log a backtrace to output starting at a provided ip/bp + */ +void log_backtrace_ex(void *ip, void *bp); + #endif /* klib.h */ -- cgit v1.2.3-freya