summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--source/main.cpp20
1 files changed, 16 insertions, 4 deletions
diff --git a/source/main.cpp b/source/main.cpp
index d17456af1..011a50f83 100644
--- a/source/main.cpp
+++ b/source/main.cpp
@@ -4,9 +4,19 @@
#include "cRoot.h"
#include "cMCLogger.h"
-//#ifdef _WIN32
-#include <exception>
-//#endif
+#include <exception> //std::exception
+#include <stdio.h> //printf
+#include <csignal> //std::signal
+#include <stdlib.h> //exit()
+
+void ShowCrashReport(int)
+{
+ std::signal(SIGSEGV, SIG_DFL);
+
+ printf("\n\nMCServer has crashed!\n");
+
+ exit(-1);
+}
int main( int argc, char **argv )
{
@@ -16,9 +26,11 @@ int main( int argc, char **argv )
_CrtSetDbgFlag ( _CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF );
#endif
+ std::signal(SIGSEGV, ShowCrashReport);
+
try
{
- cRoot Root;
+ cRoot Root;
Root.Start();
}
catch( std::exception& e )