microdroid_manager logs Err from main()
plus a few more logs.
Bug: n/a
Test: MicrodroidHostTestCases
Change-Id: I848205a356d02f76112df2831a184ef59fe69e67
diff --git a/microdroid_manager/src/ioutil.rs b/microdroid_manager/src/ioutil.rs
index ab82e05..8ab2413 100644
--- a/microdroid_manager/src/ioutil.rs
+++ b/microdroid_manager/src/ioutil.rs
@@ -15,6 +15,8 @@
//! IO utilities
use anyhow::{anyhow, Result};
+use log::debug;
+use std::fmt::Debug;
use std::fs::File;
use std::io;
use std::path::Path;
@@ -24,7 +26,8 @@
const SLEEP_DURATION: Duration = Duration::from_millis(5);
/// waits for a file with a timeout and returns it
-pub fn wait_for_file<P: AsRef<Path>>(path: P, timeout: Duration) -> Result<File> {
+pub fn wait_for_file<P: AsRef<Path> + Debug>(path: P, timeout: Duration) -> Result<File> {
+ debug!("waiting for {:?}...", path);
let begin = Instant::now();
loop {
match File::open(&path) {
diff --git a/microdroid_manager/src/main.rs b/microdroid_manager/src/main.rs
index 4953a4c..9c1792d 100644
--- a/microdroid_manager/src/main.rs
+++ b/microdroid_manager/src/main.rs
@@ -88,13 +88,20 @@
Ok(ret)
}
-fn main() -> Result<()> {
+fn main() {
+ if let Err(e) = try_main() {
+ error!("failed with {}", e);
+ std::process::exit(1);
+ }
+}
+
+fn try_main() -> Result<()> {
kernlog::init()?;
info!("started.");
- let metadata = load_metadata()?;
+ let metadata = load_metadata().context("Failed to load payload metadata")?;
- let mut instance = InstanceDisk::new()?;
+ let mut instance = InstanceDisk::new().context("Failed to load instance.img")?;
let saved_data = instance.read_microdroid_data().context("Failed to read identity data")?;
// Verify the payload before using it.