diff options
author | faketruth <faketruth@0a769ca7-a7f5-676a-18bf-c427514a06d6> | 2011-10-22 02:15:12 +0200 |
---|---|---|
committer | faketruth <faketruth@0a769ca7-a7f5-676a-18bf-c427514a06d6> | 2011-10-22 02:15:12 +0200 |
commit | ad119ce556b1855d2a7e148ce0c57889dccb5e88 (patch) | |
tree | a4d048a601abbf00cf8276e1e64aa9e813267bdb /source/main.cpp | |
parent | Compiles for linux (diff) | |
download | cuberite-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 '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 )
|