diff --git a/nemu/src/monitor/elf.c b/nemu/src/monitor/elf.c index e05c25a..72ccac7 100644 --- a/nemu/src/monitor/elf.c +++ b/nemu/src/monitor/elf.c @@ -88,7 +88,7 @@ void init_elf(const char* elf_file) { assert(ret == 1); psymt = sym; Log("SYMTAB %08x %06x %06x", shdr[i].sh_addr, shdr[i].sh_offset, shdr[i].sh_size); - } else if (shdr[i].sh_type == SHT_STRTAB) { + } else if (shdr[i].sh_type == SHT_STRTAB && shdr[i].sh_flags != 0) { strt_sz = shdr[i].sh_size; fseek(fp, shdr[i].sh_offset, SEEK_SET); char buffer[strt_sz];