#ifdef LBUG_BACKTRACE
#include <csignal>
#include <cstdlib>
#include <cstring>
#include <iostream>
#include <cpptrace/cpptrace.hpp>
namespace {
void handler(int signo) {
std::cerr << "Fatal signal " << signo << std::endl;
cpptrace::generate_trace(1 ).print();
std::_Exit(1);
}
int register_signal_handlers() noexcept {
std::signal(SIGSEGV, handler);
std::signal(SIGFPE, handler);
cpptrace::register_terminate_handler();
return 0;
}
static int ignore = register_signal_handlers();
}; #endif