diff --git a/src/backtrace/miri.rs b/src/backtrace/miri.rs index 88e2f299..2e3f1d0d 100644 --- a/src/backtrace/miri.rs +++ b/src/backtrace/miri.rs @@ -1,5 +1,5 @@ -use std::boxed::Box; -use std::ffi::c_void; +use alloc::boxed::Box; +use core::ffi::c_void; extern "Rust" { fn miri_get_backtrace(flags: u64) -> Box<[*mut ()]>; @@ -32,7 +32,7 @@ impl Frame { } pub fn sp(&self) -> *mut c_void { - std::ptr::null_mut() + core::ptr::null_mut() } pub fn symbol_address(&self) -> *mut c_void { diff --git a/src/symbolize/miri.rs b/src/symbolize/miri.rs index b1bbbc70..e0d3c811 100644 --- a/src/symbolize/miri.rs +++ b/src/symbolize/miri.rs @@ -1,9 +1,18 @@ use core::ffi::c_void; use core::marker::PhantomData; -use crate::backtrace::miri::{resolve_addr, Frame}; -use crate::symbolize::{ResolveWhat, SymbolName}; -use crate::types::BytesOrWideString; +use super::super::backtrace::miri::{resolve_addr, Frame}; +use super::BytesOrWideString; +use super::{ResolveWhat, SymbolName}; + +#[cfg(backtrace_in_libstd)] +mod mystd { + pub use crate::*; +} +#[cfg(not(backtrace_in_libstd))] +extern crate std as mystd; + +use mystd::path::Path; pub unsafe fn resolve(what: ResolveWhat<'_>, cb: &mut dyn FnMut(&super::Symbol)) { let sym = match what { @@ -45,10 +54,9 @@ impl<'a> Symbol<'a> { Some(self.inner.inner.colno) } - pub fn filename(&self) -> Option<&::std::path::Path> { - use std::path::Path; + pub fn filename(&self) -> Option<&Path> { Some(Path::new( - std::str::from_utf8(&self.inner.inner.filename).unwrap(), + core::str::from_utf8(&self.inner.inner.filename).unwrap(), )) } }