diff --git a/src/profiler.rs b/src/profiler.rs index e2a12fc2..ebef94aa 100644 --- a/src/profiler.rs +++ b/src/profiler.rs @@ -12,7 +12,7 @@ use smallvec::SmallVec; #[cfg(any(target_arch = "x86_64", target_arch = "aarch64"))] use findshlibs::{Segment, SharedLibrary, TargetSharedLibrary}; -use crate::backtrace::{Frame, Trace, TraceImpl}; +use crate::backtrace::{Trace, TraceImpl}; use crate::collector::Collector; use crate::error::{Error, Result}; use crate::frames::UnresolvedFrames; @@ -288,9 +288,12 @@ extern "C" fn perf_signal_handler( let sample_timestamp: SystemTime = SystemTime::now(); TraceImpl::trace(ucontext, |frame| { - let ip = Frame::ip(frame); - if profiler.is_blocklisted(ip) { - return false; + #[cfg(feature = "frame-pointer")] + { + let ip = crate::backtrace::Frame::ip(frame); + if profiler.is_blocklisted(ip) { + return false; + } } if index < MAX_DEPTH {