Author: Minsoo Choo Date: 2026-03-02T11:00:22-05:00 New Revision: 11576569336d5c92baf8fbc9a3f1502a95f57e52
URL: https://github.com/llvm/llvm-project/commit/11576569336d5c92baf8fbc9a3f1502a95f57e52 DIFF: https://github.com/llvm/llvm-project/commit/11576569336d5c92baf8fbc9a3f1502a95f57e52.diff LOG: [lldb][Process/FreeBSDKernelCore] Fix RegisterContext for arm64 (#183947) Since `pcb.lr` always contains the value of pc, `gpr_lr_arm64` should be unavailable. This also fixes the case where `gpr_pc_arm64` displays sp not lr field in pcb. Reported by: jrtc27 Fixes: 4f0eb3d3af443ff54425ebafce83b87ee61ee403 (#180222) --------- Signed-off-by: Minsoo Choo <[email protected]> Added: Modified: lldb/source/Plugins/Process/FreeBSD-Kernel-Core/RegisterContextFreeBSDKernelCore_arm64.cpp Removed: ################################################################################ diff --git a/lldb/source/Plugins/Process/FreeBSD-Kernel-Core/RegisterContextFreeBSDKernelCore_arm64.cpp b/lldb/source/Plugins/Process/FreeBSD-Kernel-Core/RegisterContextFreeBSDKernelCore_arm64.cpp index afd60a64a6365..15f14f6b2d127 100644 --- a/lldb/source/Plugins/Process/FreeBSD-Kernel-Core/RegisterContextFreeBSDKernelCore_arm64.cpp +++ b/lldb/source/Plugins/Process/FreeBSD-Kernel-Core/RegisterContextFreeBSDKernelCore_arm64.cpp @@ -96,15 +96,14 @@ bool RegisterContextFreeBSDKernelCore_arm64::ReadRegister( "nonconsecutive arm64 register numbers"); value = pcb.x[reg - gpr_x19_arm64]; break; - case gpr_lr_arm64: + case gpr_sp_arm64: + value = pcb.sp; + break; case gpr_pc_arm64: // The pc of crashing thread is stored in lr. static_assert(gpr_lr_arm64 - gpr_x19_arm64 == PCB_LR, "nonconsecutive arm64 register numbers"); - value = pcb.x[reg - gpr_x19_arm64]; - break; - case gpr_sp_arm64: - value = pcb.sp; + value = pcb.x[gpr_lr_arm64 - gpr_x19_arm64]; break; default: return false; _______________________________________________ lldb-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
