diff --git a/src/backtrace/frame_pointer.rs b/src/backtrace/frame_pointer.rs index e8c57c4a..d63af8be 100644 --- a/src/backtrace/frame_pointer.rs +++ b/src/backtrace/frame_pointer.rs @@ -77,7 +77,7 @@ impl super::Trace for Trace { let frame_pointer = unsafe { (*ucontext).uc_mcontext.__gregs[libc::REG_S0] as usize }; #[cfg(all(target_arch = "loongarch64", target_os = "linux"))] - let frame_pointer = unsafe { (*ucontext).uc_mcontext.sc_regs[22] as usize }; + let frame_pointer = unsafe { (*ucontext).uc_mcontext.__gregs[22] as usize }; let mut frame_pointer = frame_pointer as *mut FramePointerLayout; diff --git a/src/profiler.rs b/src/profiler.rs index 43ab0c2f..e68ee9ec 100644 --- a/src/profiler.rs +++ b/src/profiler.rs @@ -339,7 +339,7 @@ extern "C" fn perf_signal_handler( let addr = unsafe { (*ucontext).uc_mcontext.__gregs[libc::REG_PC] as usize }; #[cfg(all(target_arch = "loongarch64", target_os = "linux"))] - let addr = unsafe { (*ucontext).uc_mcontext.sc_pc as usize }; + let addr = unsafe { (*ucontext).uc_mcontext.__pc as usize }; if profiler.is_blocklisted(addr) { return;