From 182d1d339b94ba904d86e3ad7be319e99ac95615 Mon Sep 17 00:00:00 2001 From: Christian Prochaska Date: Fri, 22 Jun 2018 17:09:46 +0200 Subject: [PATCH] vbox5: print error messages in 'VirtualBoxBase::handleUnexpectedExceptions()' Fixes #2879 --- .../virtualbox5/frontend/dummy/virtualboxbase.cc | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/repos/ports/src/virtualbox5/frontend/dummy/virtualboxbase.cc b/repos/ports/src/virtualbox5/frontend/dummy/virtualboxbase.cc index 82f4a3b7f..b6ad9c0b2 100644 --- a/repos/ports/src/virtualbox5/frontend/dummy/virtualboxbase.cc +++ b/repos/ports/src/virtualbox5/frontend/dummy/virtualboxbase.cc @@ -2,6 +2,7 @@ #include "VirtualBoxImpl.h" #include "VBox/com/MultiResult.h" +#include "iprt/cpp/exception.h" #include "dummy/macros.h" @@ -30,9 +31,17 @@ HRESULT VirtualBoxBase::setErrorNoLog(HRESULT, const char *, ...) void VirtualBoxBase::clearError() TRACE() HRESULT VirtualBoxBase::setError(HRESULT aResultCode) DUMMY(E_FAIL) HRESULT VirtualBoxBase::setError(const com::ErrorInfo &ei) DUMMY(E_FAIL) -HRESULT VirtualBoxBase::handleUnexpectedExceptions(VirtualBoxBase *const, - RT_SRC_POS_DECL) TRACE(E_FAIL) HRESULT VirtualBoxBase::setErrorInternal(HRESULT, GUID const&, char const*, com::Utf8Str, bool, bool) DUMMY(E_FAIL) HRESULT VirtualBoxBase::initializeComForThread(void) TRACE(S_OK) void VirtualBoxBase::uninitializeComForThread(void) TRACE() + +HRESULT VirtualBoxBase::handleUnexpectedExceptions(VirtualBoxBase *const, RT_SRC_POS_DECL) +{ + try { throw; } + catch (const RTCError &err) { Genode::error(err.what()); } + catch (const std::exception &err) { Genode::error(err.what()); } + catch (...) { Genode::error("An unexpected exception occurred"); } + + return E_FAIL; +}