(&mut self)
| 307 | } |
| 308 | |
| 309 | fn read_vmcoreinfo(&mut self) -> Result<()> { |
| 310 | let data_va = self.vmci_data_va.unwrap_or(0); |
| 311 | let size_va = self.vmci_size_va.unwrap_or(0); |
| 312 | |
| 313 | if data_va != 0 && size_va != 0 { |
| 314 | let size = self.read_virtual_u32(size_va)? as usize; |
| 315 | let data = self.read_virtual(data_va, size)?; |
| 316 | self.vmcoreinfo = Some(data); |
| 317 | |
| 318 | if let Some(vmci) = &self.vmcoreinfo { |
| 319 | if let Ok(data) = String::from_utf8(vmci.to_vec()) { |
| 320 | for line in data.lines() { |
| 321 | info!("VMCOREINFO: {}", line); |
| 322 | } |
| 323 | } |
| 324 | } |
| 325 | } else { |
| 326 | return Err(Error::IoError("This is a problem. VMCOREINFO data isn't recoverable.".to_string())); |
| 327 | } |
| 328 | |
| 329 | Ok(()) |
| 330 | } |
| 331 | |
| 332 | fn is_vmcoreinfo_present<P: ProgramHeader>( |
| 333 | &self, |
no test coverage detected