From 2e1af92852346b309d74b9052efcb672b9fbeae8 Mon Sep 17 00:00:00 2001 From: lizzie Date: Tue, 18 Nov 2025 00:17:15 +0100 Subject: [PATCH] [hle/kernel] allow primitive tracing of svcs on debug builds (#3005) Signed-off-by: lizzie lizzie@eden-emu.dev Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3005 Reviewed-by: Caio Oliveira Reviewed-by: crueter Co-authored-by: lizzie Co-committed-by: lizzie --- src/core/hle/kernel/svc.cpp | 4 +++- tools/svc_generator.py | 5 ++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/core/hle/kernel/svc.cpp b/src/core/hle/kernel/svc.cpp index 30c6d75c13..ed0fae5332 100644 --- a/src/core/hle/kernel/svc.cpp +++ b/src/core/hle/kernel/svc.cpp @@ -2503,9 +2503,11 @@ static void Call64(Core::System& system, u32 imm, std::span args) { void Call(Core::System& system, u32 imm) { auto& kernel = system.Kernel(); auto& process = GetCurrentProcess(kernel); - std::array args; kernel.CurrentPhysicalCore().SaveSvcArguments(process, args); + LOG_TRACE(Kernel_SVC, "{} [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(); if (process.Is64Bit()) Call64(system, imm, args); diff --git a/tools/svc_generator.py b/tools/svc_generator.py index ac6136fdcd..11e551ec78 100755 --- a/tools/svc_generator.py +++ b/tools/svc_generator.py @@ -567,9 +567,12 @@ EPILOGUE_CPP = """ void Call(Core::System& system, u32 imm) { auto& kernel = system.Kernel(); auto& process = GetCurrentProcess(kernel); - std::array 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(); if (process.Is64Bit()) Call64(system, imm, args);