| 246 | } |
| 247 | |
| 248 | fn write_note( |
| 249 | &mut self, |
| 250 | dump_state: &DumpState, |
| 251 | ) -> std::result::Result<(), GuestDebuggableError> { |
| 252 | let begin = dump_state.mem_offset - dump_state.elf_note_size as u64; |
| 253 | let elf64_phdr = elf::Elf64_Phdr { |
| 254 | p_type: elf::PT_NOTE, |
| 255 | p_flags: 0, |
| 256 | p_offset: begin, |
| 257 | p_vaddr: 0, |
| 258 | p_paddr: 0, |
| 259 | p_filesz: dump_state.elf_note_size as u64, |
| 260 | p_memsz: dump_state.elf_note_size as u64, |
| 261 | p_align: 0, |
| 262 | }; |
| 263 | |
| 264 | let mut coredump_file = dump_state.file.as_ref().unwrap(); |
| 265 | let bytes: &[u8] = elf64_phdr.as_slice(); |
| 266 | coredump_file |
| 267 | .write(bytes) |
| 268 | .map_err(GuestDebuggableError::CoredumpFile)?; |
| 269 | |
| 270 | Ok(()) |
| 271 | } |
| 272 | |
| 273 | fn write_load( |
| 274 | &mut self, |