> compile NEMU

ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 13:11:29  up   0:09,  2 users,  load average: 0.74, 0.49, 0.30
This commit is contained in:
tracer-ysyx 2024-03-17 13:11:29 +08:00 committed by xinyangli
parent 9eaa04865c
commit 15f2fa649c

View file

@ -19,6 +19,8 @@ void init_elf(const char *path) {
FAILED_GOTO(failed_nosym, fread(section_header, header.e_shentsize, header.e_shnum, elf_file) <= 0);
char *shstrtab = calloc(1, section_header[header.e_shstrndx].sh_size);
FAILED_GOTO(failed_shstrtab, fseek(elf_file, section_header[header.e_shstrndx].sh_offset, SEEK_SET) != 0);
FAILED_GOTO(failed_shstrtab, fread(shstrtab, section_header[header.e_shstrndx].sh_size, 1, elf_file) <= 0);
Elf32_Shdr *symtab = NULL, *strtab = NULL;
for(int i = 0; i < header.e_shnum; i++) {
@ -30,9 +32,7 @@ void init_elf(const char *path) {
strtab = psh;
printf("strtab: %u %u\n", strtab->sh_size, strtab->sh_offset);
}
FAILED_GOTO(failed_shstrtab, fseek(elf_file, section_header[header.e_shstrndx].sh_offset, SEEK_SET) != 0);
// printf("%u\n", section_header[header.e_shstrndx].sh_offset);
FAILED_GOTO(failed_shstrtab, fread(shstrtab, section_header[header.e_shstrndx].sh_size, 1, elf_file) <= 0);
printf("%s\n", shstrtab + psh->sh_name);
// if(symtab && strtab) break;
}