From 5b73fb82d272aa32ff124a69e96579679e7d3580 Mon Sep 17 00:00:00 2001 From: KyleMiles Date: Tue, 22 Aug 2023 13:01:09 -0400 Subject: DWARF Import : Improved Cross-Compilation-Unit Handling --- rust/examples/dwarf/dwarf_import/src/dwarfdebuginfo.rs | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) (limited to 'rust/examples/dwarf/dwarf_import/src/dwarfdebuginfo.rs') diff --git a/rust/examples/dwarf/dwarf_import/src/dwarfdebuginfo.rs b/rust/examples/dwarf/dwarf_import/src/dwarfdebuginfo.rs index fad45f98..7872d8e2 100644 --- a/rust/examples/dwarf/dwarf_import/src/dwarfdebuginfo.rs +++ b/rust/examples/dwarf/dwarf_import/src/dwarfdebuginfo.rs @@ -22,7 +22,7 @@ use binaryninja::{ types::{Conf, FunctionParameter, Type}, }; -use gimli::{DebuggingInformationEntry, Reader, Unit}; +use gimli::{DebuggingInformationEntry, Dwarf, Reader, Unit}; use log::error; use std::{ @@ -210,15 +210,13 @@ impl DebugInfoBuilder { pub fn get_name>( &self, + dwarf: &Dwarf, unit: &Unit, entry: &DebuggingInformationEntry, ) -> Option { - self.names - .get(&get_uid( - unit, - &unit.entry(resolve_specification(unit, entry)).unwrap(), - )) - .cloned() + let (entry_unit, entry_offset) = resolve_specification(dwarf, unit, entry); + let entry = entry_unit.entry(entry_offset).unwrap(); + self.names.get(&get_uid(&entry_unit, &entry)).cloned() } fn commit_types(&self, debug_info: &mut DebugInfo) { -- cgit v1.3.1