summaryrefslogtreecommitdiff
path: root/src/debug.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/debug.cpp')
-rw-r--r--src/debug.cpp28
1 files changed, 22 insertions, 6 deletions
diff --git a/src/debug.cpp b/src/debug.cpp
index bd970a8e4..ae2ffadc3 100644
--- a/src/debug.cpp
+++ b/src/debug.cpp
@@ -133,11 +133,11 @@ Nullstream dummyout;
Assert
*/
-void assert_fail(const char *assertion, const char *file,
+void sanity_check_fn(const char *assertion, const char *file,
unsigned int line, const char *function)
{
DEBUGPRINT("\nIn thread %lx:\n"
- "%s:%u: %s: Assertion '%s' failed.\n",
+ "%s:%u: %s: An engine assumption '%s' failed.\n",
(unsigned long)get_current_thread_id(),
file, line, function, assertion);
@@ -149,6 +149,22 @@ void assert_fail(const char *assertion, const char *file,
abort();
}
+void fatal_error_fn(const char *msg, const char *file,
+ unsigned int line, const char *function)
+{
+ DEBUGPRINT("\nIn thread %lx:\n"
+ "%s:%u: %s: A fatal error occurred: %s\n",
+ (unsigned long)get_current_thread_id(),
+ file, line, function, msg);
+
+ debug_stacks_print();
+
+ if(g_debugstreams[1])
+ fclose(g_debugstreams[1]);
+
+ abort();
+}
+
/*
DebugStack
*/
@@ -369,9 +385,11 @@ long WINAPI Win32ExceptionHandler(struct _EXCEPTION_POINTERS *pExceptInfo)
MINIDUMP_USER_STREAM_INFORMATION mdusi;
MINIDUMP_USER_STREAM mdus;
bool minidump_created = false;
- std::string version_str("Minetest ");
- std::string dumpfile = porting::path_user + DIR_DELIM "minetest.dmp";
+ std::string dumpfile = porting::path_user + DIR_DELIM PROJECT_NAME ".dmp";
+
+ std::string version_str(PROJECT_NAME " ");
+ version_str += g_version_hash;
HANDLE hFile = CreateFileA(dumpfile.c_str(), GENERIC_WRITE,
FILE_SHARE_WRITE, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
@@ -385,8 +403,6 @@ long WINAPI Win32ExceptionHandler(struct _EXCEPTION_POINTERS *pExceptInfo)
mdei.ExceptionPointers = pExceptInfo;
mdei.ThreadId = GetCurrentThreadId();
- version_str += minetest_version_hash;
-
mdus.Type = CommentStreamA;
mdus.BufferSize = version_str.size();
mdus.Buffer = (PVOID)version_str.c_str();