diff --git a/nemu/src/monitor/elf.c b/nemu/src/monitor/elf.c index caaa5db..d05daa3 100644 --- a/nemu/src/monitor/elf.c +++ b/nemu/src/monitor/elf.c @@ -88,14 +88,14 @@ 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 && shdr[i].sh_name != ehdr.e_shstrndx) { + } else if (shdr[i].sh_type == SHT_STRTAB && i != ehdr.e_shstrndx) { strt_sz = shdr[i].sh_size; fseek(fp, shdr[i].sh_offset, SEEK_SET); char buffer[strt_sz]; ret = fread(buffer, strt_sz, 1, fp); assert(ret == 1); pstrt = buffer; - Log("SHT_STRTAB %08x %06x %06x", shdr[i].sh_addr, shdr[i].sh_offset, shdr[i].sh_size); + Log("SHT_STRTAB %d, %08x %06x %06x", ehdr.e_shstrndx, shdr[i].sh_addr, shdr[i].sh_offset, shdr[i].sh_size); } }