diff options
| author | lizzie <lizzie@eden-emu.dev> | 2025-08-15 23:20:08 +0200 |
|---|---|---|
| committer | crueter <crueter@eden-emu.dev> | 2025-08-15 23:20:08 +0200 |
| commit | 9c6fad756123db75e24e6e4f04c9a8812e31a986 (patch) | |
| tree | 26cbae8844ad263561709296a3bc9e00aac92ea0 /src/core/arm/arm_interface.cpp | |
| parent | 09a8fab2a2a76c5639d053f382bc6cc116f8a3f9 (diff) | |
[arm] allow duplicate addresses on backtrace (#251)
As a reminder, never remove duplicate entries from a back-trace, ever.
Signed-off-by: lizzie <lizzie@eden-emu.dev>
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/251
Reviewed-by: crueter <crueter@eden-emu.dev>
Co-authored-by: lizzie <lizzie@eden-emu.dev>
Co-committed-by: lizzie <lizzie@eden-emu.dev>
Diffstat (limited to 'src/core/arm/arm_interface.cpp')
| -rw-r--r-- | src/core/arm/arm_interface.cpp | 22 |
1 files changed, 5 insertions, 17 deletions
diff --git a/src/core/arm/arm_interface.cpp b/src/core/arm/arm_interface.cpp index 34acec9ebf..5087b92315 100644 --- a/src/core/arm/arm_interface.cpp +++ b/src/core/arm/arm_interface.cpp @@ -1,3 +1,5 @@ +// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project +// SPDX-License-Identifier: GPL-3.0-or-later // SPDX-FileCopyrightText: Copyright 2018 yuzu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later @@ -12,25 +14,11 @@ namespace Core { void ArmInterface::LogBacktrace(Kernel::KProcess* process) const { Kernel::Svc::ThreadContext ctx; this->GetContext(ctx); - LOG_ERROR(Core_ARM, "Backtrace, sp={:016X}, pc={:016X}", ctx.sp, ctx.pc); LOG_ERROR(Core_ARM, "{:20}{:20}{:20}{:20}{}", "Module Name", "Address", "Original Address", "Offset", "Symbol"); - LOG_ERROR(Core_ARM, ""); - - const auto backtrace = GetBacktraceFromContext(process, ctx); - u64 last_address = 0; - - for (const auto& entry : backtrace) { - - // Skip duplicate consecutive addresses - 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; - } + auto const backtrace = GetBacktraceFromContext(process, ctx); + for (auto const& entry : backtrace) + LOG_ERROR(Core_ARM, "{:20}{:016X} {:016X} {:016X} {}", entry.module, entry.address, entry.original_address, entry.offset, entry.name); } const Kernel::DebugWatchpoint* ArmInterface::MatchingWatchpoint( |
