diff options
Diffstat (limited to 'source/main.cpp')
-rw-r--r-- | source/main.cpp | 20 |
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 )
|