Path: blob/main/crates/core/src/error/backtrace.rs
3075 views
use std::backtrace::Backtrace;1use std::sync::atomic::{AtomicBool, Ordering};23static ENABLED: AtomicBool = AtomicBool::new(true);45fn enabled() -> bool {6ENABLED.load(Ordering::Relaxed)7}89/// Forcibly disable capturing backtraces dynamically.10///11/// XXX: This is only exposed for internal testing, to work around cargo12/// workspaces and feature resolution. This method may disappear or change13/// at any time. Instead of using this method, you should disable the14/// `backtrace` cargo feature.15#[doc(hidden)]16pub fn disable_backtrace() {17ENABLED.store(false, Ordering::Relaxed)18}1920#[track_caller]21pub fn capture() -> Backtrace {22if enabled() {23Backtrace::capture()24} else {25Backtrace::disabled()26}27}282930