1
0
mirror of synced 2024-11-24 15:50:16 +01:00

fix: Properly print fatal error messages when ImHex crashes

This commit is contained in:
WerWolv 2023-06-13 23:31:49 +02:00
parent 330c8399ce
commit fdb1cace2d

View File

@ -31,7 +31,7 @@ namespace hex::crash {
static std::function<void(const std::string&)> crashCallback = sendNativeMessage; static std::function<void(const std::string&)> crashCallback = sendNativeMessage;
static void saveCrashFile(const std::string& message) { static void saveCrashFile(const std::string& message) {
hex::unused(message); log::fatal(message);
nlohmann::json crashData{ nlohmann::json crashData{
{"logFile", wolv::util::toUTF8String(hex::log::getFile().getPath())}, {"logFile", wolv::util::toUTF8String(hex::log::getFile().getPath())},
@ -108,9 +108,7 @@ namespace hex::crash {
try { try {
std::rethrow_exception(std::current_exception()); std::rethrow_exception(std::current_exception());
} catch (std::exception &ex) { } catch (std::exception &ex) {
std::string exceptionStr = hex::format("{}()::what() -> {}", std::string exceptionStr = hex::format("{}()::what() -> {}", llvm::itaniumDemangle(typeid(ex).name(), nullptr, nullptr, nullptr), ex.what());
llvm::itaniumDemangle(typeid(ex).name(), nullptr, nullptr, nullptr), ex.what()
);
log::fatal("Program terminated with uncaught exception: {}", exceptionStr); log::fatal("Program terminated with uncaught exception: {}", exceptionStr);
EventManager::post<EventAbnormalTermination>(0); EventManager::post<EventAbnormalTermination>(0);