From 167a9e1a5b495b469f119c3bcc7c5057f26a22ee Mon Sep 17 00:00:00 2001 From: Zephyron Date: Thu, 2 Jan 2025 17:25:36 +1000 Subject: [PATCH] arm: Skip duplicate consecutive addresses in backtrace output Adds logic to track and skip duplicate consecutive addresses when logging backtraces. This improves log readability by removing redundant entries that point to the same address in sequence. --- src/core/arm/arm_interface.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/core/arm/arm_interface.cpp b/src/core/arm/arm_interface.cpp index 1c2557f2c..899c44bd9 100644 --- a/src/core/arm/arm_interface.cpp +++ b/src/core/arm/arm_interface.cpp @@ -18,9 +18,15 @@ void ArmInterface::LogBacktrace(Kernel::KProcess* process) const { "Offset", "Symbol"); LOG_ERROR(Core_ARM, ""); const auto backtrace = GetBacktraceFromContext(process, ctx); + + u64 last_address = 0; for (const auto& entry : backtrace) { + if (entry.address == last_address) { + continue; + } LOG_ERROR(Core_ARM, "{:20}{:016X} {:016X} {:016X} {}", entry.module, entry.address, entry.original_address, entry.offset, entry.name); + last_address = entry.address; } }