// Test that the debuginfo is being found by checking that the // backtrace contains `main` and that the source filename uses // the path given in the command line arguments. // // For dwz tests, this assumes that the path string will be moved into // the dwz file. fn main() { let crate_dir = std::env::args().skip(1).next().unwrap(); let expect = std::path::Path::new(&crate_dir).join("src/main.rs"); let bt = backtrace::Backtrace::new(); println!("{:?}", bt); let mut found_main = false; for frame in bt.frames() { let symbols = frame.symbols(); if symbols.is_empty() { continue; } if let Some(name) = symbols[0].name() { let name = format!("{:#}", name); if name == "debuglink::main" { found_main = true; let filename = symbols[0].filename().unwrap(); assert_eq!(filename, expect); break; } } } assert!(found_main); }