aboutsummaryrefslogtreecommitdiff
path: root/src/core/arm/arm_interface.cpp
diff options
context:
space:
mode:
authorlizzie <lizzie@eden-emu.dev>2025-08-15 23:20:08 +0200
committercrueter <crueter@eden-emu.dev>2025-08-15 23:20:08 +0200
commit9c6fad756123db75e24e6e4f04c9a8812e31a986 (patch)
tree26cbae8844ad263561709296a3bc9e00aac92ea0 /src/core/arm/arm_interface.cpp
parent09a8fab2a2a76c5639d053f382bc6cc116f8a3f9 (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.cpp22
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(