> 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:22:37 up 5 days, 12:30, 3 users, load average: 1.31, 0.71, 0.55
This commit is contained in:
@ -87,7 +87,7 @@ void init_elf(const char* elf_file) {
|
|||||||
ret = fread(sym, shdr[i].sh_size, 1, fp);
|
ret = fread(sym, shdr[i].sh_size, 1, fp);
|
||||||
assert(ret == 1);
|
assert(ret == 1);
|
||||||
psymt = sym;
|
psymt = sym;
|
||||||
Log("SYMTAB %ld, %08x %06x %06x", symt_len, 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) {
|
} else if (shdr[i].sh_type == SHT_STRTAB && i != ehdr.e_shstrndx) {
|
||||||
strt_sz = shdr[i].sh_size;
|
strt_sz = shdr[i].sh_size;
|
||||||
char buffer[strt_sz];
|
char buffer[strt_sz];
|
||||||
@ -95,12 +95,12 @@ void init_elf(const char* elf_file) {
|
|||||||
ret = fread(buffer, strt_sz, 1, fp);
|
ret = fread(buffer, strt_sz, 1, fp);
|
||||||
assert(ret == 1);
|
assert(ret == 1);
|
||||||
pstrt = buffer;
|
pstrt = buffer;
|
||||||
Log("SHT_STRTAB %d, %08x %06x %06x", ehdr.e_shstrndx, 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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// filling ftrace
|
// filling ftrace
|
||||||
assert(pstrt != NULL && pstrt != NULL);
|
assert(psymt != NULL && pstrt != NULL);
|
||||||
for (int i = 0; i < symt_len; i ++) {
|
for (int i = 0; i < symt_len; i ++) {
|
||||||
if (ELF_ST_TYPE(psymt[i].st_info) == STT_FUNC) {
|
if (ELF_ST_TYPE(psymt[i].st_info) == STT_FUNC) {
|
||||||
// Warning due to elf_ftrace is global variable so you don't need to set '\0' in the end
|
// Warning due to elf_ftrace is global variable so you don't need to set '\0' in the end
|
||||||
|
Reference in New Issue
Block a user