pprof/backtrace/
backtrace_rs.rs
1impl super::Frame for backtrace::Frame {
2 type S = backtrace::Symbol;
3
4 fn ip(&self) -> usize {
5 self.ip() as usize
6 }
7
8 fn resolve_symbol<F: FnMut(&Self::S)>(&self, cb: F) {
9 backtrace::resolve_frame(self, cb);
10 }
11
12 fn symbol_address(&self) -> *mut libc::c_void {
13 self.symbol_address()
14 }
15}
16
17pub struct Trace {}
18
19impl super::Trace for Trace {
20 type Frame = backtrace::Frame;
21
22 fn trace<F: FnMut(&Self::Frame) -> bool>(_: *mut libc::c_void, cb: F) {
23 unsafe { backtrace::trace_unsynchronized(cb) }
24 }
25}
26
27pub use backtrace::Frame;
28pub use backtrace::Symbol;