diff options
author | eutarass | 2011-04-26 23:23:15 +0000 |
---|---|---|
committer | eutarass | 2011-04-26 23:23:15 +0000 |
commit | bf5fefa66e52cf52e157b625a65e16f817f1655b (patch) | |
tree | d71922f691af54ea81a4751e3b5cd9dce5c4e405 | |
parent | 7a91c638b4e9b346b9b564c315cbf019158569ef (diff) | |
download | org.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.c | 5 |
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); } |