Source code

Revision control

Copy as Markdown

Other Tools

/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
//! A frontend for minidump analysis.
use minidump_analyzer::MinidumpAnalyzer;
pub fn main() {
// Skip program name and `--analyze` argument.
let mut args = std::env::args_os().skip(2);
let mut minidump_path = None;
let mut analyze_all_threads = false;
while let Some(arg) = args.next() {
if arg == "--full" && !analyze_all_threads {
analyze_all_threads = true;
} else if minidump_path.is_none() {
minidump_path = Some(arg);
} else {
eprintln!("ignoring extraneous argument: {}", arg.to_string_lossy());
}
}
let Some(minidump_path) = minidump_path else {
eprintln!("expected minidump path to analyze");
std::process::exit(1);
};
if let Err(e) = MinidumpAnalyzer::new(minidump_path.as_ref())
.all_threads(analyze_all_threads)
.analyze()
{
eprintln!("minidump analyzer failed: {e}");
std::process::exit(1);
}
}