diff --git a/elf/elffile.cpp b/elf/elffile.cpp --- a/elf/elffile.cpp +++ b/elf/elffile.cpp @@ -34,6 +34,7 @@ ElfFile::ElfFile() this->elfFile = (int)NULL; this->e = NULL; this->data = NULL; + this->SymbolCount = 0; } ElfFile::ElfFile(const QString &File) @@ -45,6 +46,7 @@ ElfFile::ElfFile(const QString &File) this->e = NULL; this->p_fileName = File; this->data = NULL; + this->SymbolCount = 0; openFile(File); } @@ -819,7 +821,8 @@ void ElfFile::updateSymbols() for(int i=0;i<(int)SectionCount;i++) { //First find Symbol table - if(this->getSectionName(i)==".symtab") + QString sectionName = this->getSectionName(i); + if(sectionName==".symtab" || sectionName == ".dynsym") { Elf_Section* sec = sections.at(i); this->SymbolCount = sec->section_header->sh_size / sec->section_header->sh_entsize;