diff --git a/GlosSIConfig/Resource.rc b/GlosSIConfig/Resource.rc index 03c384c..22b9c84 100644 --- a/GlosSIConfig/Resource.rc +++ b/GlosSIConfig/Resource.rc @@ -51,8 +51,8 @@ END // VS_VERSION_INFO VERSIONINFO - FILEVERSION 0,0,1,003005025411 - PRODUCTVERSION 0,0,1,003005025411 + FILEVERSION 0,0,1,003000346323 + PRODUCTVERSION 0,0,1,003000346323 FILEFLAGSMASK 0x3fL #ifdef _DEBUG FILEFLAGS 0x1L @@ -69,12 +69,12 @@ BEGIN BEGIN VALUE "CompanyName", "Peter Repukat - FlatspotSoftware" VALUE "FileDescription", "GlosSI - Config" - VALUE "FileVersion", "0.0.1.0-3-g5f25411" + VALUE "FileVersion", "0.0.1.0-3-ga346323" VALUE "InternalName", "GlosSIConfig" VALUE "LegalCopyright", "Copyright (C) 2021 Peter Repukat - FlatspotSoftware" VALUE "OriginalFilename", "GlosSIConfig.exe" VALUE "ProductName", "GlosSi" - VALUE "ProductVersion", "0.0.1.0-3-g5f25411" + VALUE "ProductVersion", "0.0.1.0-3-ga346323" END END BLOCK "VarFileInfo" @@ -241,6 +241,10 @@ END + + + + diff --git a/GlosSITarget/Resource.rc b/GlosSITarget/Resource.rc index 6e5fcd0..85ea85b 100644 --- a/GlosSITarget/Resource.rc +++ b/GlosSITarget/Resource.rc @@ -51,8 +51,8 @@ END // VS_VERSION_INFO VERSIONINFO - FILEVERSION 0,0,1,003005025411 - PRODUCTVERSION 0,0,1,003005025411 + FILEVERSION 0,0,1,003000346323 + PRODUCTVERSION 0,0,1,003000346323 FILEFLAGSMASK 0x3fL #ifdef _DEBUG FILEFLAGS 0x1L @@ -69,12 +69,12 @@ BEGIN BEGIN VALUE "CompanyName", "Peter Repukat - FlatspotSoftware" VALUE "FileDescription", "GlosSI - SteamTarget" - VALUE "FileVersion", "0.0.1.0-3-g5f25411" + VALUE "FileVersion", "0.0.1.0-3-ga346323" VALUE "InternalName", "GlosSITarget" VALUE "LegalCopyright", "Copyright (C) 2021 Peter Repukat - FlatspotSoftware" VALUE "OriginalFilename", "GlosSITarget.exe" VALUE "ProductName", "GlosSI" - VALUE "ProductVersion", "0.0.1.0-3-g5f25411" + VALUE "ProductVersion", "0.0.1.0-3-ga346323" END END BLOCK "VarFileInfo" @@ -599,6 +599,22 @@ END + + + + + + + + + + + + + + + + diff --git a/GlosSITarget/main.cpp b/GlosSITarget/main.cpp index f73ab4b..3e3d3a0 100644 --- a/GlosSITarget/main.cpp +++ b/GlosSITarget/main.cpp @@ -27,6 +27,48 @@ limitations under the License. #include "OverlayLogSink.h" #include "Settings.h" + +#ifdef _WIN32 + +LONG Win32FaultHandler(struct _EXCEPTION_POINTERS* ExInfo) + +{ + std::string FaultTx = ""; + switch (ExInfo->ExceptionRecord->ExceptionCode) { + case EXCEPTION_ACCESS_VIOLATION: + FaultTx = "ACCESS VIOLATION"; + break; + case EXCEPTION_DATATYPE_MISALIGNMENT: + FaultTx = "DATATYPE MISALIGNMENT"; + break; + case EXCEPTION_FLT_DIVIDE_BY_ZERO: + FaultTx = "FLT DIVIDE BY ZERO"; + break; + default : FaultTx = "(unknown)"; + break; + } + + int wsFault = ExInfo->ExceptionRecord->ExceptionCode; + PVOID CodeAdress = ExInfo->ExceptionRecord->ExceptionAddress; + + + + spdlog::error("*** A Program Fault occurred:"); + spdlog::error("*** Error code {:#x}: {}", wsFault, FaultTx); + spdlog::error("*** Address: {:#x}", (int)CodeAdress); + spdlog::error("*** Flags: {:#x}", ExInfo->ExceptionRecord->ExceptionFlags); + + /*if(want to continue) + { + ExInfo->ContextRecord->Eip++; + return EXCEPTION_CONTINUE_EXECUTION; + } + */ + return EXCEPTION_EXECUTE_HANDLER; +} + +#endif + #ifdef _WIN32 #ifdef CONSOLE int main(int argc, char* argv[]) @@ -73,6 +115,7 @@ int main(int argc, char* argv[]) logger->flush_on(spdlog::level::info); spdlog::set_default_logger(logger); #ifdef _WIN32 + SetUnhandledExceptionFilter(static_cast(Win32FaultHandler)); std::string argsv = ""; if (__argc > 1) { for (int i = 1; i < __argc; i++)