Skip to content

Commit

Permalink
WIP
Browse files Browse the repository at this point in the history
  • Loading branch information
douglas-raillard-arm committed Jan 2, 2024
1 parent b6eb432 commit 2c160b7
Showing 1 changed file with 19 additions and 10 deletions.
29 changes: 19 additions & 10 deletions tools/analysis/trace-tools/src/lib/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -18,17 +18,26 @@ pub(crate) use convert_err_impl;

pub fn check_header<W: Write>(header: &Header, mut out: W) -> Result<(), Box<dyn Error>> {
for desc in header.event_descs() {
writeln!(&mut out, "EVENT {}", desc.name)?;
let _ = desc.event_fmt().map_err(|err| {
let mut display = |desc: &EventDesc| {
let fmt = std::str::from_utf8(desc.raw_fmt()?)?;
writeln!(&mut out, " ERR {err}:\n{}", fmt)?;
writeln!(&mut out, "Checking event \"{}\" format", desc.name)?;
match desc.event_fmt() {
Err(err) => {
let mut display = |desc: &EventDesc| -> Result<(), Box<dyn Error>> {
let fmt = std::str::from_utf8(desc.raw_fmt()?)?;
writeln!(&mut out, " Error while parsing event format: {err}:\n{}", fmt)?;
Ok(())
};
display(desc)
},
Ok(fmt) => {
fmt.print_args.iter().enumerate().map(|(i, res)| match res {
Err(err) => {
writeln!(&mut out, " Could not compile printk argument #{i}: {err:?}")
}
Ok(_) => Ok(()),
}).collect::<Result<_, _>>()?;
Ok(())
};
display(desc).map_err(|err: Box<dyn Error>| {
writeln!(&mut out, " ERR while displaying the error: {err}")
})
});
}
}?;
}
Ok(())
}

0 comments on commit 2c160b7

Please sign in to comment.