Browse Source

[hle/kernel] allow primitive tracing of svcs on debug builds

pull/3005/head
lizzie 3 months ago
committed by crueter
parent
commit
9f828ed635
  1. 4
      src/core/hle/kernel/svc.cpp
  2. 5
      tools/svc_generator.py

4
src/core/hle/kernel/svc.cpp

@ -2503,9 +2503,11 @@ static void Call64(Core::System& system, u32 imm, std::span<uint64_t, 8> args) {
void Call(Core::System& system, u32 imm) { void Call(Core::System& system, u32 imm) {
auto& kernel = system.Kernel(); auto& kernel = system.Kernel();
auto& process = GetCurrentProcess(kernel); auto& process = GetCurrentProcess(kernel);
std::array<uint64_t, 8> args; std::array<uint64_t, 8> args;
kernel.CurrentPhysicalCore().SaveSvcArguments(process, args); kernel.CurrentPhysicalCore().SaveSvcArguments(process, args);
LOG_TRACE(Kernel_SVC, "#{:#x} [0]={:#x} [1]={:#x} [2]={:#x} [3]={:#x} [4]={:#x} [5]={:#x} [6]={:#x}",
imm, GetArg32(args, 0), GetArg32(args, 1), GetArg32(args, 2),
GetArg32(args, 3), GetArg32(args, 4), GetArg32(args, 5), GetArg32(args, 6));
//kernel.EnterSVCProfile(); //kernel.EnterSVCProfile();
if (process.Is64Bit()) if (process.Is64Bit())
Call64(system, imm, args); Call64(system, imm, args);

5
tools/svc_generator.py

@ -567,9 +567,12 @@ EPILOGUE_CPP = """
void Call(Core::System& system, u32 imm) { void Call(Core::System& system, u32 imm) {
auto& kernel = system.Kernel(); auto& kernel = system.Kernel();
auto& process = GetCurrentProcess(kernel); auto& process = GetCurrentProcess(kernel);
std::array<uint64_t, 8> args; std::array<uint64_t, 8> args;
kernel.CurrentPhysicalCore().SaveSvcArguments(process, args); kernel.CurrentPhysicalCore().SaveSvcArguments(process, args);
LOG_TRACE(Kernel_SVC, "#{:#x} [0]={:#x} [1]={:#x} [2]={:#x} [3]={:#x} [4]={:#x} [5]={:#x} [6]={:#x}",
imm,
GetArg32(args, 0), GetArg32(args, 1), GetArg32(args, 2),
GetArg32(args, 3), GetArg32(args, 4), GetArg32(args, 5), GetArg32(args, 6));
//kernel.EnterSVCProfile(); //kernel.EnterSVCProfile();
if (process.Is64Bit()) if (process.Is64Bit())
Call64(system, imm, args); Call64(system, imm, args);

Loading…
Cancel
Save