blob: 9bfb47ff129d56a2f6248cc7c273fcecdc433905 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
--- libdd-crashtracker/src/collector/emitters.rs.orig 2025-11-03 12:41:37 UTC
+++ libdd-crashtracker/src/collector/emitters.rs
@@ -198,7 +198,7 @@ fn emit_proc_self_maps(w: &mut impl Write) -> Result<(
Ok(())
}
-#[cfg(target_os = "linux")]
+#[cfg(any(target_os = "freebsd", target_os = "linux"))]
fn emit_ucontext(w: &mut impl Write, ucontext: *const ucontext_t) -> Result<(), EmitterError> {
if ucontext.is_null() {
return Err(EmitterError::NullUcontext);
@@ -325,6 +325,11 @@ fn extract_ip(ucontext: *const ucontext_t) -> usize {
return (*(*ucontext).uc_mcontext).__ss.__rip as usize;
#[cfg(all(target_os = "macos", target_arch = "aarch64"))]
return (*(*ucontext).uc_mcontext).__ss.__pc as usize;
+
+ #[cfg(all(target_os = "freebsd", target_arch = "x86_64"))]
+ return (*ucontext).uc_mcontext.mc_rip as usize;
+ #[cfg(all(target_os = "freebsd", target_arch = "aarch64"))]
+ return (*ucontext).uc_mcontext.mc_gpregs.gp_pc;
#[cfg(all(target_os = "linux", target_arch = "x86_64"))]
return (*ucontext).uc_mcontext.gregs[libc::REG_RIP as usize] as usize;
|