}
}
-struct EyreDedupHandler;
+use backtrace::Backtrace;
+
+struct EyreDedupHandler {
+ backtrace: Backtrace,
+}
+
type EyreDynError<'r> = &'r (dyn std::error::Error + 'static);
impl eyre::EyreHandler for EyreDedupHandler {
#[throws(AE)]
pub fn dedup_eyre_setup() {
- eyre::set_hook(Box::new(|_error| Box::new(EyreDedupHandler)))
+ eyre::set_hook(Box::new(|_error| {
+ let backtrace = Backtrace::new_unresolved();
+ Box::new(EyreDedupHandler { backtrace })
+ }))
.context("set error handler")?;
}