summaryrefslogtreecommitdiff
path: root/plugins
diff options
context:
space:
mode:
authorJosh Ferrell <josh@vector35.com>2025-04-14 16:27:22 -0400
committerJosh Ferrell <josh@vector35.com>2025-04-14 16:27:22 -0400
commitc3f286e6ab09fb7945d84fa7d213905d328bb4e5 (patch)
treec33bf0ef31d74c852f2323afcafd4edc9e7a37f4 /plugins
parent4f7d5e40861d73a3738b63f92d9ff5feb235f8d6 (diff)
Set vendor for .eh_frame parsing for aarch64 binaries
Diffstat (limited to 'plugins')
-rw-r--r--plugins/dwarf/dwarf_import/src/lib.rs5
1 files changed, 5 insertions, 0 deletions
diff --git a/plugins/dwarf/dwarf_import/src/lib.rs b/plugins/dwarf/dwarf_import/src/lib.rs
index 7e4e10ee..d401f36f 100644
--- a/plugins/dwarf/dwarf_import/src/lib.rs
+++ b/plugins/dwarf/dwarf_import/src/lib.rs
@@ -555,6 +555,11 @@ fn parse_dwarf(
create_section_reader(section_id, view, eh_frame_endian, dwo_file)
};
let mut eh_frame = gimli::EhFrame::load(eh_frame_section_reader).unwrap();
+ if let Some(view_arch) = view.default_arch() {
+ if view_arch.name().as_str() == "aarch64" {
+ eh_frame.set_vendor(gimli::Vendor::AArch64);
+ }
+ }
eh_frame.set_address_size(view.address_size() as u8);
range_data_offsets = parse_unwind_section(view, eh_frame)
.map_err(|e| error!("Error parsing .eh_frame: {}", e))?;