Print guest stack trace on a few points that can throw exceptions
This commit is contained in:
parent
bd9b1e2c6b
commit
db0aa54233
4 changed files with 9 additions and 3 deletions
|
@ -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
|
||||||
|
|
|
@ -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"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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)
|
||||||
|
|
Reference in a new issue