From f1a688a1e7fb6d962d8c9addaaefdfd59e5dd28b Mon Sep 17 00:00:00 2001 From: Josh Ferrell Date: Mon, 18 May 2026 11:29:01 -0400 Subject: [DWARF Import] Use proper address width for unknown architectures --- plugins/dwarf/dwarf_import/src/lib.rs | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) (limited to 'plugins') diff --git a/plugins/dwarf/dwarf_import/src/lib.rs b/plugins/dwarf/dwarf_import/src/lib.rs index a9e4bbd8..c98defb0 100644 --- a/plugins/dwarf/dwarf_import/src/lib.rs +++ b/plugins/dwarf/dwarf_import/src/lib.rs @@ -516,9 +516,12 @@ fn parse_range_data_offsets(file: &object::File) -> Result eh_frame.set_vendor(gimli::Vendor::AArch64); } - if let Some(address_size) = file.architecture().address_size() { - eh_frame.set_address_size(address_size.bytes()); - } + let address_size = file + .architecture() + .address_size() + .map(|s| s.bytes()) + .unwrap_or(if file.is_64() { 8 } else { 4 }); + eh_frame.set_address_size(address_size); parse_unwind_section(&file, eh_frame).map_err(|e| format!("Error parsing .eh_frame: {}", e)) } else if file.section_by_name(".debug_frame").is_some() { @@ -529,9 +532,13 @@ fn parse_range_data_offsets(file: &object::File) -> Result debug_frame.set_vendor(gimli::Vendor::AArch64); } - if let Some(address_size) = file.architecture().address_size() { - debug_frame.set_address_size(address_size.bytes()); - } + let address_size = file + .architecture() + .address_size() + .map(|s| s.bytes()) + .unwrap_or(if file.is_64() { 8 } else { 4 }); + debug_frame.set_address_size(address_size); + parse_unwind_section(&file, debug_frame) .map_err(|e| format!("Error parsing .debug_frame: {}", e)) } else { -- cgit v1.3.1