diff options
author | norly <ny-git@enpas.org> | 2013-06-15 13:27:42 +0100 |
---|---|---|
committer | norly <ny-git@enpas.org> | 2013-06-15 13:32:17 +0100 |
commit | 3c14755015340e48ae68aa874f672e7c9d289832 (patch) | |
tree | 123582950a75bc25b99f2767481aa69f38aaf2a7 /src/modelops/fromFile.c | |
parent | 5af52fe4fc36c1a355f4bfad58f80f52f822f768 (diff) |
Flatten symtab to file - gdb works, check breaks.
Diffstat (limited to 'src/modelops/fromFile.c')
-rw-r--r-- | src/modelops/fromFile.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/modelops/fromFile.c b/src/modelops/fromFile.c index 85afe20..c46dd6c 100644 --- a/src/modelops/fromFile.c +++ b/src/modelops/fromFile.c @@ -30,7 +30,8 @@ static void parseSymtab32(ElfuScn *ms, ElfuScn**origScnArr) ElfuSym *sym = malloc(sizeof(*sym)); assert(sym); - sym->name = symstr(ms, cursym->st_name); + sym->name = cursym->st_name; + sym->nameptr = symstr(ms, cursym->st_name); sym->value = cursym->st_value; sym->size = cursym->st_size; sym->bind = ELF32_ST_BIND(cursym->st_info); @@ -256,6 +257,7 @@ ElfuElf* elfu_mFromElf(Elf *e) CIRCLEQ_INIT(&me->phdrList); CIRCLEQ_INIT(&me->orphanScnList); me->shstrtab = NULL; + me->symtab = NULL; me->elfclass = gelf_getclass(e); assert(me->elfclass != ELFCLASSNONE); @@ -368,6 +370,7 @@ ElfuElf* elfu_mFromElf(Elf *e) switch (ms->shdr.sh_type) { case SHT_SYMTAB: + me->symtab = ms; case SHT_DYNSYM: if (me->elfclass == ELFCLASS32) { parseSymtab32(ms, secArray); |