summaryrefslogtreecommitdiffstats
path: root/source/main.cpp
diff options
context:
space:
mode:
authorfaketruth <faketruth@0a769ca7-a7f5-676a-18bf-c427514a06d6>2011-10-22 02:15:12 +0200
committerfaketruth <faketruth@0a769ca7-a7f5-676a-18bf-c427514a06d6>2011-10-22 02:15:12 +0200
commitad119ce556b1855d2a7e148ce0c57889dccb5e88 (patch)
treea4d048a601abbf00cf8276e1e64aa9e813267bdb /source/main.cpp
parentCompiles for linux (diff)
downloadcuberite-ad119ce556b1855d2a7e148ce0c57889dccb5e88.tar
cuberite-ad119ce556b1855d2a7e148ce0c57889dccb5e88.tar.gz
cuberite-ad119ce556b1855d2a7e148ce0c57889dccb5e88.tar.bz2
cuberite-ad119ce556b1855d2a7e148ce0c57889dccb5e88.tar.lz
cuberite-ad119ce556b1855d2a7e148ce0c57889dccb5e88.tar.xz
cuberite-ad119ce556b1855d2a7e148ce0c57889dccb5e88.tar.zst
cuberite-ad119ce556b1855d2a7e148ce0c57889dccb5e88.zip
Diffstat (limited to '')
-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 )