Initial vendor packages
Signed-off-by: Valentin Popov <valentin@popov.link>
This commit is contained in:
5
vendor/backtrace/examples/backtrace.rs
vendored
Normal file
5
vendor/backtrace/examples/backtrace.rs
vendored
Normal file
@ -0,0 +1,5 @@
|
||||
use backtrace::Backtrace;
|
||||
|
||||
fn main() {
|
||||
println!("{:?}", Backtrace::new());
|
||||
}
|
52
vendor/backtrace/examples/raw.rs
vendored
Normal file
52
vendor/backtrace/examples/raw.rs
vendored
Normal file
@ -0,0 +1,52 @@
|
||||
fn main() {
|
||||
foo();
|
||||
}
|
||||
|
||||
fn foo() {
|
||||
bar()
|
||||
}
|
||||
fn bar() {
|
||||
baz()
|
||||
}
|
||||
fn baz() {
|
||||
print()
|
||||
}
|
||||
|
||||
#[cfg(target_pointer_width = "32")]
|
||||
const HEX_WIDTH: usize = 10;
|
||||
#[cfg(target_pointer_width = "64")]
|
||||
const HEX_WIDTH: usize = 20;
|
||||
|
||||
fn print() {
|
||||
let mut cnt = 0;
|
||||
backtrace::trace(|frame| {
|
||||
let ip = frame.ip();
|
||||
print!("frame #{:<2} - {:#02$x}", cnt, ip as usize, HEX_WIDTH);
|
||||
cnt += 1;
|
||||
|
||||
let mut resolved = false;
|
||||
backtrace::resolve(frame.ip(), |symbol| {
|
||||
if !resolved {
|
||||
resolved = true;
|
||||
} else {
|
||||
print!("{}", vec![" "; 7 + 2 + 3 + HEX_WIDTH].join(""));
|
||||
}
|
||||
|
||||
if let Some(name) = symbol.name() {
|
||||
print!(" - {}", name);
|
||||
} else {
|
||||
print!(" - <unknown>");
|
||||
}
|
||||
if let Some(file) = symbol.filename() {
|
||||
if let Some(l) = symbol.lineno() {
|
||||
print!("\n{:13}{:4$}@ {}:{}", "", "", file.display(), l, HEX_WIDTH);
|
||||
}
|
||||
}
|
||||
println!("");
|
||||
});
|
||||
if !resolved {
|
||||
println!(" - <no info>");
|
||||
}
|
||||
true // keep going
|
||||
});
|
||||
}
|
Reference in New Issue
Block a user