From 78ba016b0399907ebf224ee3ab185db75e664fdc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20L=C3=BCbe=C3=9F?= Date: Thu, 20 Jul 2023 17:48:50 +0200 Subject: [PATCH] Log Exceptions in thrown by Script OnUpdate-Function --- GlitchyEngine/src/Scripting/ScriptClass.bf | 11 ++++++++++- GlitchyEngineHelper/src/Mono/Mono.bf | 8 +++++++- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/GlitchyEngine/src/Scripting/ScriptClass.bf b/GlitchyEngine/src/Scripting/ScriptClass.bf index 93a9b36..2e16085 100644 --- a/GlitchyEngine/src/Scripting/ScriptClass.bf +++ b/GlitchyEngine/src/Scripting/ScriptClass.bf @@ -199,9 +199,18 @@ class ScriptClass : SharpClass public void OnUpdate(MonoObject* instance, float deltaTime) { - MonoException* exception; + MonoException* exception = null; if (_onUpdate != null) _onUpdate(instance, deltaTime, &exception); + + if (exception != null) + { + char8* str = Mono.mono_string_to_utf8(exception.Message); + + Log.EngineLogger.Error($"Exception in \"{_fullName}.OnUpdate\". Message:\"{StringView(str)}\""); + + Mono.mono_free(str); + } } public void OnDestroy(MonoObject* instance) diff --git a/GlitchyEngineHelper/src/Mono/Mono.bf b/GlitchyEngineHelper/src/Mono/Mono.bf index c62495f..5327005 100644 --- a/GlitchyEngineHelper/src/Mono/Mono.bf +++ b/GlitchyEngineHelper/src/Mono/Mono.bf @@ -226,7 +226,13 @@ struct MonoObject; struct MonoMethod; -struct MonoException; +struct MonoException +{ + void* _bla; + void* _bla2; + void* _bla3; + public MonoString* Message; +} struct MonoClassField;