Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoreutarass2011-04-26 23:23:15 +0000
committereutarass2011-04-26 23:23:15 +0000
commitbf5fefa66e52cf52e157b625a65e16f817f1655b (patch)
treed71922f691af54ea81a4751e3b5cd9dce5c4e405
parent7a91c638b4e9b346b9b564c315cbf019158569ef (diff)
downloadorg.eclipse.tcf.agent-bf5fefa66e52cf52e157b625a65e16f817f1655b.tar.gz
org.eclipse.tcf.agent-bf5fefa66e52cf52e157b625a65e16f817f1655b.tar.xz
org.eclipse.tcf.agent-bf5fefa66e52cf52e157b625a65e16f817f1655b.zip
TCF Agent: fixed assertion failure: assert(rt_addr == elf_map_to_run_time_address(ctx, file, sec, lt_addr)) in symbols_elf.c
-rw-r--r--services/tcf_elf.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/services/tcf_elf.c b/services/tcf_elf.c
index 0f1d2758..e764dec5 100644
--- a/services/tcf_elf.c
+++ b/services/tcf_elf.c
@@ -976,11 +976,12 @@ ContextAddress elf_map_to_link_time_address(Context * ctx, ContextAddress addr,
ELF_File * f = NULL;
assert(r->addr <= addr);
assert(r->addr + r->size > addr);
- f = *file = open_memory_region_file(r, NULL);
+ f = open_memory_region_file(r, NULL);
if (f == NULL) continue;
if (r->sect_name == NULL) {
unsigned j;
if (f->pheader_cnt == 0 && f->type == ET_EXEC) {
+ *file = f;
*sec = NULL;
return addr;
}
@@ -994,6 +995,7 @@ ContextAddress elf_map_to_link_time_address(Context * ctx, ContextAddress addr,
if ((p->flags & PF_W) && !(r->flags & MM_FLAG_W)) continue;
if ((p->flags & PF_X) && !(r->flags & MM_FLAG_X)) continue;
}
+ *file = f;
*sec = NULL;
return (ContextAddress)(offs - p->offset + p->address);
}
@@ -1003,6 +1005,7 @@ ContextAddress elf_map_to_link_time_address(Context * ctx, ContextAddress addr,
for (j = 1; j < f->section_cnt; j++) {
ELF_Section * s = f->sections + j;
if (strcmp(s->name, r->sect_name) == 0) {
+ *file = f;
*sec = s;
return (ContextAddress)(addr - r->addr + s->addr);
}

Back to the top