summaryrefslogtreecommitdiff
path: root/src/modelops/fromFile.c
diff options
context:
space:
mode:
authornorly <ny-git@enpas.org>2013-06-15 13:27:42 +0100
committernorly <ny-git@enpas.org>2013-06-15 13:32:17 +0100
commit3c14755015340e48ae68aa874f672e7c9d289832 (patch)
tree123582950a75bc25b99f2767481aa69f38aaf2a7 /src/modelops/fromFile.c
parent5af52fe4fc36c1a355f4bfad58f80f52f822f768 (diff)
Flatten symtab to file - gdb works, check breaks.
Diffstat (limited to 'src/modelops/fromFile.c')
-rw-r--r--src/modelops/fromFile.c5
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);