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

Reply via email to