linuxkm: add support for WOLFSSL_DEBUG_BACKTRACE_ERROR_CODES using dump_stack().

pull/7875/head
Daniel Pouzzner 2024-08-20 23:36:07 -05:00
parent 0da78a7ee2
commit 05c4955316
3 changed files with 21 additions and 0 deletions

View File

@ -632,6 +632,10 @@
#endif
#endif
#ifdef WOLFSSL_DEBUG_BACKTRACE_ERROR_CODES
typeof(dump_stack) *dump_stack;
#endif
const void *_last_slot;
};
@ -777,6 +781,10 @@
#endif
#endif
#ifdef WOLFSSL_DEBUG_BACKTRACE_ERROR_CODES
#define dump_stack (wolfssl_linuxkm_get_pie_redirect_table()->dump_stack)
#endif
#endif /* __PIE__ */
#endif /* USE_WOLFSSL_LINUXKM_PIE_REDIRECT_TABLE */

View File

@ -580,6 +580,10 @@ static int set_up_wolfssl_linuxkm_pie_redirect_table(void) {
#endif
#endif
#ifdef WOLFSSL_DEBUG_BACKTRACE_ERROR_CODES
wolfssl_linuxkm_pie_redirect_table.dump_stack = dump_stack;
#endif
/* runtime assert that the table has no null slots after initialization. */
{
unsigned long *i;

View File

@ -1721,6 +1721,14 @@ void WOLFSSL_ERROR_MSG(const char* msg)
#ifdef WOLFSSL_DEBUG_BACKTRACE_ERROR_CODES
#ifdef WOLFSSL_LINUXKM
void wc_backtrace_render(void) {
dump_stack();
}
#else /* !WOLFSSL_LINUXKM */
#include <backtrace-supported.h>
#if BACKTRACE_SUPPORTED != 1
@ -1848,5 +1856,6 @@ void wc_backtrace_render(void) {
wc_UnLockMutex(&backtrace_mutex);
}
#endif /* !WOLFSSL_LINUXKM */
#endif /* WOLFSSL_DEBUG_BACKTRACE_ERROR_CODES */