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.Decoder;
using ChocolArm64.State; using ChocolArm64.State;
using ChocolArm64.Translation; using ChocolArm64.Translation;
using System.Reflection;
using System.Reflection.Emit; using System.Reflection.Emit;
namespace ChocolArm64.Instruction namespace ChocolArm64.Instruction

View file

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

View file

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

View file

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