> compile NEMU

221220000 张三
Linux zzy 5.15.146.1-microsoft-standard-WSL2 #1 SMP Thu Jan 11 04:09:03 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux
 00:20:59 up 5 days, 12:29,  3 users,  load average: 0.53, 0.49, 0.47
This commit is contained in:
tracer-ics2023
2024-09-11 00:21:00 +08:00
committed by zzy
parent 32fe466960
commit ca7d31b870

View File

@ -80,18 +80,18 @@ void init_elf(const char* elf_file) {
size_t symt_len = 0, strt_sz = 0;
for (int i = 0; i < ehdr.e_shnum; i++) {
if (shdr[i].sh_type == SHT_SYMTAB) {
fseek(fp, shdr[i].sh_offset, SEEK_SET);
assert(shdr[i].sh_size % sizeof(Elf_Sym) == 0);
symt_len = shdr[i].sh_size / shdr[i].sh_entsize;
Elf_Sym sym[symt_len];
fseek(fp, shdr[i].sh_offset, SEEK_SET);
ret = fread(sym, shdr[i].sh_size, 1, fp);
assert(ret == 1);
psymt = sym;
Log("SYMTAB %08x %06x %06x", shdr[i].sh_addr, shdr[i].sh_offset, shdr[i].sh_size);
Log("SYMTAB %ld, %08x %06x %06x", symt_len, shdr[i].sh_addr, shdr[i].sh_offset, shdr[i].sh_size);
} 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];
fseek(fp, shdr[i].sh_offset, SEEK_SET);
ret = fread(buffer, strt_sz, 1, fp);
assert(ret == 1);
pstrt = buffer;