(&self, vm: &mut icicle_vm::Vm, path: &std::path::Path, symbolize: bool)
| 200 | } |
| 201 | |
| 202 | pub fn save_trace(&self, vm: &mut icicle_vm::Vm, path: &std::path::Path, symbolize: bool) { |
| 203 | use std::io::Write; |
| 204 | |
| 205 | if symbolize { |
| 206 | let mut output = std::io::BufWriter::new(std::fs::File::create(path).unwrap()); |
| 207 | for entry in self.get_last_blocks(vm) { |
| 208 | let location = vm |
| 209 | .env |
| 210 | .symbolize_addr(&mut vm.cpu, entry.pc) |
| 211 | .unwrap_or(icicle_vm::cpu::debug_info::SourceLocation::default()); |
| 212 | writeln!(output, "{:#08x},sp={:#08x},location={location}", entry.pc, entry.sp) |
| 213 | .unwrap(); |
| 214 | } |
| 215 | } |
| 216 | else { |
| 217 | save_path_trace(path, &self.get_last_blocks(vm)) |
| 218 | } |
| 219 | } |
| 220 | } |
| 221 | |
| 222 | pub fn save_path_trace(path: &std::path::Path, blocks: &Vec<TraceEntry>) { |
no test coverage detected