Skip to content

Commit

Permalink
Run fmt
Browse files Browse the repository at this point in the history
  • Loading branch information
Aaron1011 committed Sep 25, 2020
1 parent fa5b936 commit 1835604
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 21 deletions.
13 changes: 5 additions & 8 deletions src/backtrace/miri.rs
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
use std::boxed::Box;
use std::ffi::c_void;
use std::string::String;
use std::vec::Vec;
use std::boxed::Box;

extern "Rust" {
fn miri_get_backtrace(flags: u64) -> Box<[*mut ()]>;
Expand All @@ -10,7 +10,7 @@ extern "Rust" {

#[derive(Debug)]
struct MiriData {
frames: Vec<*mut c_void>
frames: Vec<*mut c_void>,
}

#[derive(Debug, Clone)]
Expand All @@ -24,7 +24,7 @@ pub struct MiriFrame {
#[derive(Debug, Clone)]
pub struct Frame {
pub addr: *mut c_void,
pub inner: MiriFrame
pub inner: MiriFrame,
}

// SAFETY: Miri guarantees that the returned pointer
Expand Down Expand Up @@ -56,21 +56,18 @@ pub fn trace<F: FnMut(&super::Frame) -> bool>(cb: F) {
unsafe { trace_unsynchronized(cb) };
}


pub fn resolve_addr(ptr: *mut c_void) -> Frame {
let frame: MiriFrame = unsafe { miri_resolve_frame(ptr as *mut (), 0) };
Frame {
addr: ptr,
inner: frame
inner: frame,
}
}

pub unsafe fn trace_unsynchronized<F: FnMut(&super::Frame) -> bool>(mut cb: F) {
let frames = miri_get_backtrace(0);
for ptr in frames.iter() {
let frame = resolve_addr(*ptr as *mut c_void);
cb(&super::Frame {
inner: frame
});
cb(&super::Frame { inner: frame });
}
}
24 changes: 11 additions & 13 deletions src/symbolize/miri.rs
Original file line number Diff line number Diff line change
@@ -1,31 +1,27 @@
use core::marker::PhantomData;
use core::ffi::c_void;
use core::marker::PhantomData;

use crate::symbolize::{ResolveWhat, SymbolName};
use crate::backtrace::miri::{resolve_addr, Frame};
use crate::symbolize::{ResolveWhat, SymbolName};
use crate::types::BytesOrWideString;


pub unsafe fn resolve(what: ResolveWhat, cb: &mut FnMut(&super::Symbol)) {
let sym = match what {
ResolveWhat::Address(addr) => Symbol {
inner: resolve_addr(addr),
_unused: PhantomData
_unused: PhantomData,
},
ResolveWhat::Frame(frame) => Symbol {
inner: frame.inner.clone(),
_unused: PhantomData,
},
ResolveWhat::Frame(frame) => {
Symbol {
inner: frame.inner.clone(),
_unused: PhantomData
}
}
};
cb(&super::Symbol { inner: sym })
}


pub struct Symbol<'a> {
inner: Frame,
_unused: PhantomData<&'a ()>
_unused: PhantomData<&'a ()>,
}

impl<'a> Symbol<'a> {
Expand All @@ -51,6 +47,8 @@ impl<'a> Symbol<'a> {

pub fn filename(&self) -> Option<&::std::path::Path> {
use std::path::Path;
Some(Path::new(std::str::from_utf8(&self.inner.inner.filename).unwrap()))
Some(Path::new(
std::str::from_utf8(&self.inner.inner.filename).unwrap(),
))
}
}

0 comments on commit 1835604

Please sign in to comment.