diff --git a/External/FEXCore/Source/Utils/LogManager.cpp b/External/FEXCore/Source/Utils/LogManager.cpp index 36174cc26..842c7bae9 100644 --- a/External/FEXCore/Source/Utils/LogManager.cpp +++ b/External/FEXCore/Source/Utils/LogManager.cpp @@ -7,6 +7,7 @@ namespace LogMan { namespace Throw { std::vector Handlers; void InstallHandler(ThrowHandler Handler) { Handlers.emplace_back(Handler); } +void UnInstallHandlers() { Handlers.clear(); } [[noreturn]] void M(const char *fmt, va_list args) { size_t MsgSize = 1024; @@ -30,6 +31,7 @@ void InstallHandler(ThrowHandler Handler) { Handlers.emplace_back(Handler); } namespace Msg { std::vector Handlers; void InstallHandler(MsgHandler Handler) { Handlers.emplace_back(Handler); } +void UnInstallHandlers() { Handlers.clear(); } void M(DebugLevels Level, const char *fmt, va_list args) { size_t MsgSize = 1024; diff --git a/External/FEXCore/include/FEXCore/Utils/LogManager.h b/External/FEXCore/include/FEXCore/Utils/LogManager.h index 20fcc8337..ab8b3e09f 100644 --- a/External/FEXCore/include/FEXCore/Utils/LogManager.h +++ b/External/FEXCore/include/FEXCore/Utils/LogManager.h @@ -19,6 +19,7 @@ constexpr DebugLevels MSG_LEVEL = INFO; namespace Throw { using ThrowHandler = void(*)(char const *Message); void InstallHandler(ThrowHandler Handler); +void UnInstallHandlers(); [[noreturn]] void M(const char *fmt, va_list args); @@ -40,6 +41,7 @@ static inline void A(bool, const char*, ...) {} namespace Msg { using MsgHandler = void(*)(DebugLevels Level, char const *Message); void InstallHandler(MsgHandler Handler); +void UnInstallHandlers(); void M(DebugLevels Level, const char *fmt, va_list args); diff --git a/Source/Tests/ELFLoader.cpp b/Source/Tests/ELFLoader.cpp index 070e02935..73ff00fe4 100644 --- a/Source/Tests/ELFLoader.cpp +++ b/Source/Tests/ELFLoader.cpp @@ -283,6 +283,9 @@ int main(int argc, char **argv, char **const envp) { FEXCore::Config::Shutdown(); + LogMan::Throw::UnInstallHandlers(); + LogMan::Msg::UnInstallHandlers(); + if (OutputFD != stderr && OutputFD != stdout && OutputFD != nullptr) {