From 25bc6e4223a28ed31364157cf92a6dd2ec38d77f Mon Sep 17 00:00:00 2001 From: Jan Travnicek <Jan.Travnicek@fit.cvut.cz> Date: Mon, 30 Jun 2014 14:21:18 +0200 Subject: [PATCH] sig interupt --- alib2/src/std/sigHandler.cpp | 36 ++++++++++++++++++++++++++++++++ alib2/src/std/sigHandler.h | 22 +++++++++++++++++++ alib2/src/std/sigsegvHandler.cpp | 24 --------------------- alib2/src/std/sigsegvHandler.h | 22 ------------------- 4 files changed, 58 insertions(+), 46 deletions(-) create mode 100644 alib2/src/std/sigHandler.cpp create mode 100644 alib2/src/std/sigHandler.h delete mode 100644 alib2/src/std/sigsegvHandler.cpp delete mode 100644 alib2/src/std/sigsegvHandler.h diff --git a/alib2/src/std/sigHandler.cpp b/alib2/src/std/sigHandler.cpp new file mode 100644 index 0000000000..9b124597a0 --- /dev/null +++ b/alib2/src/std/sigHandler.cpp @@ -0,0 +1,36 @@ +#include <stdio.h> +#include <execinfo.h> +#include <signal.h> +#include <stdlib.h> +#include <unistd.h> + +#include "sigHandler.h" +#include "stacktrace.h" +#include <iostream> + +namespace std { + +void SigHandler::handler(int signal) { + switch(signal) { + case SIGSEGV: + std::cout << "Segmentation fault" << std::endl; + break; + case SIGINT: + std::cout << "Interrupted" << std::endl; + break; + default: + std::cout << "Unknown signal" << std::endl; + break; + } + std::cout << std::stacktrace() << std::endl; + exit(1); +} + +SigHandler::SigHandler() { + signal(SIGSEGV, SigHandler::handler); + signal(SIGINT, SigHandler::handler); +} + +SigHandler SigHandler::HANDLER; + +} /* namespace std */ diff --git a/alib2/src/std/sigHandler.h b/alib2/src/std/sigHandler.h new file mode 100644 index 0000000000..76bf4ad5f2 --- /dev/null +++ b/alib2/src/std/sigHandler.h @@ -0,0 +1,22 @@ +#ifndef SIG_HANDLER_H_ +#define SIG_HANDLER_H_ + +#include <sstream> +#include <string> + +namespace std { + +class SigHandler { + static void handler(int); + +protected: + + SigHandler(); + + static SigHandler HANDLER; + +}; + +} /* namespace std */ + +#endif /* SIG_HANDLER_H_ */ diff --git a/alib2/src/std/sigsegvHandler.cpp b/alib2/src/std/sigsegvHandler.cpp deleted file mode 100644 index 2f7717ec29..0000000000 --- a/alib2/src/std/sigsegvHandler.cpp +++ /dev/null @@ -1,24 +0,0 @@ -#include <stdio.h> -#include <execinfo.h> -#include <signal.h> -#include <stdlib.h> -#include <unistd.h> - -#include "sigsegvHandler.h" -#include "stacktrace.h" -#include <iostream> - -namespace std { - -void SigsegvHandler::handler(int) { - std::cout << std::stacktrace() << std::endl; - exit(1); -} - -SigsegvHandler::SigsegvHandler() { - signal(SIGSEGV, SigsegvHandler::handler); -} - -SigsegvHandler SigsegvHandler::HANDLER; - -} /* namespace std */ diff --git a/alib2/src/std/sigsegvHandler.h b/alib2/src/std/sigsegvHandler.h deleted file mode 100644 index a0603fdd0b..0000000000 --- a/alib2/src/std/sigsegvHandler.h +++ /dev/null @@ -1,22 +0,0 @@ -#ifndef ITOS_H_ -#define ITOS_H_ - -#include <sstream> -#include <string> - -namespace std { - -class SigsegvHandler { - static void handler(int); - -protected: - - SigsegvHandler(); - - static SigsegvHandler HANDLER; - -}; - -} /* namespace std */ - -#endif /* ITOS_H_ */ -- GitLab