summaryrefslogtreecommitdiff
path: root/plugins/dwarf/dwarf_import/src/dwarfdebuginfo.rs
diff options
context:
space:
mode:
authorJosh Ferrell <josh@vector35.com>2025-04-18 15:46:27 -0400
committerJosh Ferrell <josh@vector35.com>2025-04-23 15:46:37 -0400
commit0493db09dee436a9ecb9009ae7222dccefd3d5e3 (patch)
tree7a775b5b383fcd77bb9ed3bab665a6b2d8a86408 /plugins/dwarf/dwarf_import/src/dwarfdebuginfo.rs
parent8385022779729901786510517878173596454097 (diff)
Various DWARF fixes
- Do not add binary base to function address twice when a symbol with that function's raw name already exists - Load eh_frame/debug_frame from base bv instead of debug bv and make calculated cie offset ranges relative to bv start - Fix dwarf raw name resolution not resolving specification - Try to load eh_frame/debug_frame from both raw and normal views in dwarf import
Diffstat (limited to 'plugins/dwarf/dwarf_import/src/dwarfdebuginfo.rs')
-rw-r--r--plugins/dwarf/dwarf_import/src/dwarfdebuginfo.rs2
1 files changed, 1 insertions, 1 deletions
diff --git a/plugins/dwarf/dwarf_import/src/dwarfdebuginfo.rs b/plugins/dwarf/dwarf_import/src/dwarfdebuginfo.rs
index 604867f5..136a7a8b 100644
--- a/plugins/dwarf/dwarf_import/src/dwarfdebuginfo.rs
+++ b/plugins/dwarf/dwarf_import/src/dwarfdebuginfo.rs
@@ -608,7 +608,7 @@ impl DebugInfoBuilder {
if func.address.is_none() && func.raw_name.is_some() {
// DWARF doesn't contain GOT info, so remove any entries there...they will be wrong (relying on Binja's mechanisms for the GOT is good )
if symbol.sym_type() != SymbolType::ImportAddress {
- func.address = Some(symbol.address());
+ func.address = Some(symbol.address() - bv.start());
}
}