Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEugene Tarassov2012-01-10 19:06:03 +0000
committerEugene Tarassov2012-01-10 19:06:03 +0000
commit54cf9764841792d876cea23213510a62286118b8 (patch)
tree89b6656f9f24e20a55c65814d204b0ca436192c8
parent5990e9ff5e0659a67c2127476e06a5bb70f5e67a (diff)
downloadorg.eclipse.tcf.agent-54cf9764841792d876cea23213510a62286118b8.tar.gz
org.eclipse.tcf.agent-54cf9764841792d876cea23213510a62286118b8.tar.xz
org.eclipse.tcf.agent-54cf9764841792d876cea23213510a62286118b8.zip
TCF Agent: fixed: get_symbol_address() should use ELF symbol table if the symbol location not available in DWARF.
-rw-r--r--agent/tcf/services/symbols_elf.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/agent/tcf/services/symbols_elf.c b/agent/tcf/services/symbols_elf.c
index f81a1b51..34d01ed9 100644
--- a/agent/tcf/services/symbols_elf.c
+++ b/agent/tcf/services/symbols_elf.c
@@ -1394,13 +1394,16 @@ static int map_to_sym_table(ObjectInfo * obj, Symbol ** sym) {
int found = 0;
if (obj->mFlags & DOIF_external) {
Trap trap;
+ DWARFCache * cache = get_dwarf_cache(obj->mCompUnit->mFile);
if (set_trap(&trap)) {
PropertyValue p;
- DWARFCache * cache = get_dwarf_cache(obj->mCompUnit->mFile);
read_and_evaluate_dwarf_object_property(sym_ctx, sym_frame, obj, AT_MIPS_linkage_name, &p);
if (p.mAddr != NULL) found = find_by_name_in_sym_table(cache, (char *)p.mAddr, sym);
clear_trap(&trap);
}
+ else if (get_error_code(trap.error) == ERR_SYM_NOT_FOUND && obj->mName != NULL) {
+ found = find_by_name_in_sym_table(cache, obj->mName, sym);
+ }
}
return found;
}

Back to the top