You've already forked godot
mirror of
https://github.com/godotengine/godot.git
synced 2025-11-10 13:00:37 +00:00
Improve crash handler message display
- State the Godot version and full hash in the backtrace. - Add decoration around the crash backtrace, both to make it stand out from other messages and help the user figure out what they should copy.
This commit is contained in:
@@ -32,6 +32,8 @@
|
||||
|
||||
#include "core/config/project_settings.h"
|
||||
#include "core/os/os.h"
|
||||
#include "core/version.h"
|
||||
#include "core/version_hash.gen.h"
|
||||
#include "main/main.h"
|
||||
|
||||
#ifdef CRASH_HANDLER_EXCEPTION
|
||||
@@ -127,6 +129,7 @@ DWORD CrashHandlerException(EXCEPTION_POINTERS *ep) {
|
||||
return EXCEPTION_CONTINUE_SEARCH;
|
||||
}
|
||||
|
||||
fprintf(stderr, "\n================================================================\n");
|
||||
fprintf(stderr, "%s: Program crashed\n", __FUNCTION__);
|
||||
|
||||
if (OS::get_singleton()->get_main_loop())
|
||||
@@ -175,6 +178,12 @@ DWORD CrashHandlerException(EXCEPTION_POINTERS *ep) {
|
||||
msg = proj_settings->get("debug/settings/crash_handler/message");
|
||||
}
|
||||
|
||||
// Print the engine version just before, so that people are reminded to include the version in backtrace reports.
|
||||
if (String(VERSION_HASH).length() != 0) {
|
||||
fprintf(stderr, "Engine version: " VERSION_FULL_NAME " (" VERSION_HASH ")\n");
|
||||
} else {
|
||||
fprintf(stderr, "Engine version: " VERSION_FULL_NAME "\n");
|
||||
}
|
||||
fprintf(stderr, "Dumping the backtrace. %s\n", msg.utf8().get_data());
|
||||
|
||||
int n = 0;
|
||||
@@ -200,6 +209,7 @@ DWORD CrashHandlerException(EXCEPTION_POINTERS *ep) {
|
||||
} while (frame.AddrReturn.Offset != 0 && n < 256);
|
||||
|
||||
fprintf(stderr, "-- END OF BACKTRACE --\n");
|
||||
fprintf(stderr, "================================================================\n");
|
||||
|
||||
SymCleanup(process);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user