Files
klubhaus-doorbell/libraries/FastLED/tests/crash_handler_noop.h
2026-02-12 00:45:31 -08:00

41 lines
1.1 KiB
C++

#ifndef CRASH_HANDLER_NOOP_H
#define CRASH_HANDLER_NOOP_H
#include <csignal>
#include <cstdio>
#include <cstdlib>
namespace crash_handler_noop {
inline void print_stacktrace_noop() {
printf("Stack trace (no-op): Stack trace functionality not available\n");
printf(" Compile with one of the following to enable stack traces:\n");
printf(" - Windows: Automatically enabled on Windows builds\n");
printf(" - libunwind: Define USE_LIBUNWIND and link with -lunwind\n");
printf(" - execinfo: Available on most Unix-like systems with glibc\n");
}
inline void crash_handler(int sig) {
fprintf(stderr, "Error: signal %d:\n", sig);
print_stacktrace_noop();
exit(1);
}
inline void setup_crash_handler() {
// Set up basic signal handlers (no stack trace capability)
signal(SIGABRT, crash_handler);
signal(SIGFPE, crash_handler);
signal(SIGILL, crash_handler);
signal(SIGINT, crash_handler);
signal(SIGSEGV, crash_handler);
signal(SIGTERM, crash_handler);
}
inline void print_stacktrace() {
print_stacktrace_noop();
}
} // namespace crash_handler_noop
#endif // CRASH_HANDLER_NOOP_H