Print a message first in case it crashes again during minidump creation

This commit is contained in:
Coxxs 2025-11-13 17:30:22 +08:00
parent 4bd46c50be
commit c65fed8af7

View file

@ -384,7 +384,26 @@ namespace Ryujinx.Ava
if (isTerminating) if (isTerminating)
{ {
TryWriteApplicationMinidump(); try
{
// Print a short message first just in case it crashes again during minidump creation (should not happen)
Logger.Error?.Print(LogClass.Application, $"Unhandled exception caught: {initialException.GetType().Name}. Creating guest program minidump...");
var minidump = HLE.Switch.Shared?.System?.DebugGetApplicationProcessMinidump();
if (minidump == null)
{
Logger.Warning?.Print(LogClass.Application, "Failed to create minidump");
}
else
{
Logger.Info?.Print(LogClass.Application, minidump);
}
}
catch (Exception e)
{
Logger.Error?.Print(LogClass.Application, $"Failed to create minidump: {e.Message}");
}
} }
foreach (Exception e in exceptions) foreach (Exception e in exceptions)
@ -405,31 +424,6 @@ namespace Ryujinx.Ava
} }
} }
private static void TryWriteApplicationMinidump()
{
try
{
if (HLE.Switch.Shared is not { } device)
{
return;
}
var minidump = device?.System?.DebugGetApplicationProcessMinidump();
if (minidump == null)
{
Logger.Warning?.Print(LogClass.Application, "Failed to create minidump");
return;
}
Logger.Info?.Print(LogClass.Application, minidump);
}
catch (Exception e)
{
Logger.Error?.Print(LogClass.Application, $"Failed to create minidump: {e.Message}");
}
}
internal static void Exit() internal static void Exit()
{ {
DiscordIntegrationModule.Exit(); DiscordIntegrationModule.Exit();