From 264a5cf77a2562ac07d67a9e71babb6a5a14e31c Mon Sep 17 00:00:00 2001 From: Josh Ferrell Date: Sun, 4 Aug 2024 20:38:33 -0400 Subject: Change error when applying function without name from dwarf info to debug --- rust/examples/dwarf/dwarf_import/src/dwarfdebuginfo.rs | 6 ++---- rust/examples/dwarf/dwarf_import/src/functions.rs | 9 +++++++++ 2 files changed, 11 insertions(+), 4 deletions(-) (limited to 'rust/examples') diff --git a/rust/examples/dwarf/dwarf_import/src/dwarfdebuginfo.rs b/rust/examples/dwarf/dwarf_import/src/dwarfdebuginfo.rs index 408b373f..3e5cc1bf 100644 --- a/rust/examples/dwarf/dwarf_import/src/dwarfdebuginfo.rs +++ b/rust/examples/dwarf/dwarf_import/src/dwarfdebuginfo.rs @@ -260,7 +260,6 @@ impl DebugInfoBuilder { return Some(*idx); } } - else if let Some(ident) = &full_name { // check if we already know about this full name's index // if we do, and the raw name will change, remove the known raw index if it exists @@ -282,9 +281,8 @@ impl DebugInfoBuilder { return Some(*idx); } } - - if raw_name.is_none() && full_name.is_none() { - error!("Function entry in DWARF without full or raw name. Please report this issue."); + else { + debug!("Function entry in DWARF without full or raw name."); return None; } diff --git a/rust/examples/dwarf/dwarf_import/src/functions.rs b/rust/examples/dwarf/dwarf_import/src/functions.rs index ea6aba4d..9ca01a2c 100644 --- a/rust/examples/dwarf/dwarf_import/src/functions.rs +++ b/rust/examples/dwarf/dwarf_import/src/functions.rs @@ -21,6 +21,7 @@ use crate::types::get_type; use binaryninja::templatesimplifier::simplify_str_to_str; use cpp_demangle::DemangleOptions; use gimli::{constants, DebuggingInformationEntry, Dwarf, Unit}; +use log::debug; use regex::Regex; fn get_parameters( @@ -117,5 +118,13 @@ pub(crate) fn parse_function_entry( full_name = debug_info_builder_context.get_name(dwarf, unit, entry) } + if raw_name.is_none() && full_name.is_none() { + debug!( + "Function entry in DWARF without full or raw name: .debug_info offset {:?}", + entry.offset().to_debug_info_offset(&unit.header) + ); + return None; + } + debug_info_builder.insert_function(full_name, raw_name, return_type, address, ¶meters, variable_arguments) } -- cgit v1.3.1