Print guest stack trace on a few points that can throw exceptions

This commit is contained in:
gdkchan 2018-04-22 02:48:17 -03:00
parent bd9b1e2c6b
commit db0aa54233
4 changed files with 9 additions and 3 deletions

View file

@ -1,7 +1,6 @@
using ChocolArm64.Decoder;
using ChocolArm64.State;
using ChocolArm64.Translation;
using System.Reflection;
using System.Reflection.Emit;
namespace ChocolArm64.Instruction

View file

@ -93,6 +93,8 @@ namespace Ryujinx.Core.OsHle.Kernel
}
else
{
Process.PrintStackTrace(ThreadState);
throw new NotImplementedException(e.Id.ToString("x4"));
}
}

View file

@ -211,6 +211,8 @@ namespace Ryujinx.Core.OsHle.Kernel
long Unknown = (long)ThreadState.X1;
long Info = (long)ThreadState.X2;
Process.PrintStackTrace(ThreadState);
throw new GuestBrokeExecutionException();
}
@ -297,7 +299,10 @@ namespace Ryujinx.Core.OsHle.Kernel
ThreadState.X1 = MemoryRegions.MapRegionSize;
break;
default: throw new NotImplementedException($"SvcGetInfo: {InfoType} {Handle} {InfoId}");
default:
Process.PrintStackTrace(ThreadState);
throw new NotImplementedException($"SvcGetInfo: {InfoType} {Handle:x8} {InfoId}");
}
ThreadState.X0 = 0;

View file

@ -303,7 +303,7 @@ namespace Ryujinx.Core.OsHle
Trace.AppendLine(" " + SubName + " (" + GetNsoNameAndAddress(Position) + ")");
}
Logging.Trace(LogClass.CPU, Trace.ToString());
Logging.Info(LogClass.CPU, Trace.ToString());
}
private string GetNsoNameAndAddress(long Position)