MCPcopy Index your code
hub / github.com/encounter/objdiff / parse

Method parse

objdiff-core/src/obj/mdebug.rs:251–282  ·  view source on GitHub ↗
(data: &[u8], endianness: Endianness)

Source from the content-addressed store, hash-verified

249
250impl Header {
251 fn parse(data: &[u8], endianness: Endianness) -> Result<Self> {
252 ensure!(HDRR_SIZE <= data.len(), ".mdebug header truncated");
253 let mut cursor = 0;
254 let magic = read_u16(data, &mut cursor, endianness)?;
255 let _vstamp = read_u16(data, &mut cursor, endianness)?;
256 ensure!(magic == 0x7009, "unexpected .mdebug magic: {magic:#x}");
257 let _iline_max = read_u32(data, &mut cursor, endianness)?;
258 let _cb_line = read_u32(data, &mut cursor, endianness)?;
259 let cb_line_offset = read_u32(data, &mut cursor, endianness)?;
260 let _idn_max = read_u32(data, &mut cursor, endianness)?;
261 let _cb_dn_offset = read_u32(data, &mut cursor, endianness)?;
262 let _ipd_max = read_u32(data, &mut cursor, endianness)?;
263 let cb_pd_offset = read_u32(data, &mut cursor, endianness)?;
264 let isym_max = read_u32(data, &mut cursor, endianness)?;
265 let cb_sym_offset = read_u32(data, &mut cursor, endianness)?;
266 let _iopt_max = read_u32(data, &mut cursor, endianness)?;
267 let _cb_opt_offset = read_u32(data, &mut cursor, endianness)?;
268 let _iaux_max = read_u32(data, &mut cursor, endianness)?;
269 let _cb_aux_offset = read_u32(data, &mut cursor, endianness)?;
270 let _iss_max = read_u32(data, &mut cursor, endianness)?;
271 let _cb_ss_offset = read_u32(data, &mut cursor, endianness)?;
272 let _iss_ext_max = read_u32(data, &mut cursor, endianness)?;
273 let _cb_ss_ext_offset = read_u32(data, &mut cursor, endianness)?;
274 let ifd_max = read_u32(data, &mut cursor, endianness)?;
275 let cb_fd_offset = read_u32(data, &mut cursor, endianness)?;
276 let _crfd = read_u32(data, &mut cursor, endianness)?;
277 let _cb_rfd_offset = read_u32(data, &mut cursor, endianness)?;
278 let _iext_max = read_u32(data, &mut cursor, endianness)?;
279 let _cb_ext_offset = read_u32(data, &mut cursor, endianness)?;
280
281 Ok(Header { cb_line_offset, cb_pd_offset, cb_sym_offset, cb_fd_offset, isym_max, ifd_max })
282 }
283}
284
285#[derive(Clone, Copy)]

Callers

nothing calls this directly

Calls 3

read_i32Function · 0.85
read_u16Function · 0.70
read_u32Function · 0.70

Tested by

no test coverage detected