13#if defined(__GLIBC__) && !defined(_WIN32) && !defined(__CYGWIN__)
24 char const* date,
char const* time)
26 std::cout << application_name <<
" (built on "
27 << date <<
", " << time <<
")" << std::endl;
45 std::cerr <<
"Received signal SIGSEGV (segmentation fault)" << std::endl;
54#if defined(__GLIBC__) && !defined(_WIN32) && !defined(__CYGWIN__)
57 int const size = ::backtrace(array, 32);
60 std::cerr <<
"Obtained " << size <<
" stack frames:";
61 for (
int i = 0; i < size; ++i)
62 std::cerr <<
" " << array[i];
63 std::cerr << std::endl;
66 ::backtrace_symbols_fd(array, size, 2);
68 std::cerr <<
"Segmentation fault" << std::endl;
void print_stack_trace(void)
Prints a stack trace.
void signal_segfault_handler(int code)
Handles signal SIGSEGV (segmentation fault) printing a stack trace.
void print_build_timestamp(char const *application_name, char const *date, char const *time)
Prints the application name and the given date and time strings.
void register_segfault_handler(void)
Registers signal SIGSEGV (segmentation fault) handler.
#define UTIL_NAMESPACE_BEGIN
#define UTIL_NAMESPACE_END
#define UTIL_SYSTEM_NAMESPACE_BEGIN
#define UTIL_SYSTEM_NAMESPACE_END