diff options
| author | KyleMiles <krm504@nyu.edu> | 2023-07-31 23:08:38 -0400 |
|---|---|---|
| committer | KyleMiles <krm504@nyu.edu> | 2023-07-31 23:08:38 -0400 |
| commit | 23f099266fc5b804675d7c9f66a71d2b7d1b662f (patch) | |
| tree | 78aea5c41c47a864c631581ec6ab1945917971f5 /rust/examples/dwarf/shared/src | |
| parent | 877436a87570d49bd4c694f2a8b45d9a1f9be989 (diff) | |
Add dSYM support
Diffstat (limited to 'rust/examples/dwarf/shared/src')
| -rw-r--r-- | rust/examples/dwarf/shared/src/lib.rs | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/rust/examples/dwarf/shared/src/lib.rs b/rust/examples/dwarf/shared/src/lib.rs index cb3e9dde..6e667dfc 100644 --- a/rust/examples/dwarf/shared/src/lib.rs +++ b/rust/examples/dwarf/shared/src/lib.rs @@ -31,7 +31,7 @@ use std::{fmt, str}; // Dwarf Validation pub fn is_non_dwo_dwarf(view: &BinaryView) -> bool { - view.section_by_name(".debug_info").is_ok() + view.section_by_name(".debug_info").is_ok() || view.section_by_name("__debug_info").is_ok() } pub fn is_dwo_dwarf(view: &BinaryView) -> bool { @@ -41,6 +41,7 @@ pub fn is_dwo_dwarf(view: &BinaryView) -> bool { pub fn is_raw_non_dwo_dwarf(view: &BinaryView) -> bool { if let Ok(raw_view) = view.raw_view() { raw_view.section_by_name(".debug_info").is_ok() + || view.section_by_name("__debug_info").is_ok() } else { false } @@ -293,6 +294,11 @@ pub fn create_section_reader<'a, Endian: 'a + Endianity>( } else { Ok(DWARFReader::new(view.read_vec(offset, len), endian)) } + } else if let Ok(section) = view.section_by_name("__".to_string() + §ion_name[1..]) { + Ok(DWARFReader::new( + view.read_vec(section.start(), section.len()), + endian, + )) } else { Ok(DWARFReader::new(vec![], endian)) } |
