Iterate the entries in `.eh_frame` bytes, returning `(cie_count, fde_count)`.
(data: &[u8])
| 361 | |
| 362 | /// Iterate the entries in `.eh_frame` bytes, returning `(cie_count, fde_count)`. |
| 363 | fn count_entries(data: &[u8]) -> (usize, usize) { |
| 364 | let mut eh_frame = gimli::EhFrame::new(data, gimli::LittleEndian); |
| 365 | eh_frame.set_address_size(8); |
| 366 | let bases = gimli::BaseAddresses::default(); |
| 367 | let mut entries = eh_frame.entries(&bases); |
| 368 | let (mut cies, mut fdes) = (0, 0); |
| 369 | while let Some(entry) = entries.next().expect("walk eh_frame entries") { |
| 370 | match entry { |
| 371 | gimli::CieOrFde::Cie(_) => cies += 1, |
| 372 | gimli::CieOrFde::Fde(_) => fdes += 1, |
| 373 | } |
| 374 | } |
| 375 | (cies, fdes) |
| 376 | } |
| 377 | |
| 378 | #[test] |
| 379 | fn emits_eh_frame_for_x86_64_systemv_target() { |
no test coverage detected