diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2022-07-16 21:32:38 +0200 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2022-07-16 21:32:38 +0200 |
| commit | 90f58dbcbe5b1e5e1bb03fd6b7b732e1859c7f29 (patch) | |
| tree | c0caedd9cf1abf0b4fbe1d053831458b44f3f16e /src | |
| parent | 729d19ab24a2600789f5a7cf7148f7c025c759f9 (diff) | |
| download | box64-90f58dbcbe5b1e5e1bb03fd6b7b732e1859c7f29.tar.gz box64-90f58dbcbe5b1e5e1bb03fd6b7b732e1859c7f29.zip | |
Improve trace a bit
Diffstat (limited to 'src')
| -rwxr-xr-x | src/elfs/elfloader.c | 6 | ||||
| -rwxr-xr-x | src/libtools/signals.c | 8 |
2 files changed, 6 insertions, 8 deletions
diff --git a/src/elfs/elfloader.c b/src/elfs/elfloader.c index f20e9e36..6490619d 100755 --- a/src/elfs/elfloader.c +++ b/src/elfs/elfloader.c @@ -159,7 +159,7 @@ int AllocElfMemory(box64context_t* context, elfheader_t* head, int mainbin) if(!head->vaddr && box64_load_addr) { offs = box64_load_addr; box64_load_addr += head->memsz; - box64_load_addr = (box64_load_addr+0xffffffLL)&~0xffffffLL; + box64_load_addr = (box64_load_addr+0x10ffffffLL)&~0xffffffLL; } int log_level = box64_load_addr?LOG_INFO:LOG_DEBUG; if(!offs) @@ -672,7 +672,7 @@ int RelocateElfRELA(lib_t *maplib, lib_t *local_maplib, int bindnow, elfheader_t } if (!offs) { if(strcmp(symname, "__gmon_start__") && strcmp(symname, "data_start") && strcmp(symname, "__data_start")) - printf_log(LOG_NONE, "%s: Global Symbol %s not found, cannot apply R_X86_64_GLOB_DAT @%p (%p) in %s\n", (bind==STB_WEAK)?"Warning":"Error", symname, p, *(void**)p, head->name); + printf_log((bind==STB_WEAK)?LOG_INFO:LOG_NONE, "%s: Global Symbol %s not found, cannot apply R_X86_64_GLOB_DAT @%p (%p) in %s\n", (bind==STB_WEAK)?"Warning":"Error", symname, p, *(void**)p, head->name); } else { printf_dump(LOG_NEVER, "Apply %s R_X86_64_GLOB_DAT @%p (%p -> %p) on sym=%s (ver=%d/%s)\n", (bind==STB_LOCAL)?"Local":"Global", p, (void*)(p?(*p):0), (void*)offs, symname, version, vername?vername:"(none)"); *p = offs/* + rela[i].r_addend*/; // not addend it seems @@ -704,7 +704,7 @@ int RelocateElfRELA(lib_t *maplib, lib_t *local_maplib, int bindnow, elfheader_t (bind==STB_LOCAL)?"Local":"Global", p, symname, *(void**)p, (void*)(offs+rela[i].r_addend)); *p = offs + rela[i].r_addend; } else { - printf_log(LOG_NONE, "Warning, Symbol %s found, but Jump Slot Offset is NULL \n", symname); + printf_log(LOG_INFO, "Warning, Symbol %s found, but Jump Slot Offset is NULL \n", symname); } } } else { diff --git a/src/libtools/signals.c b/src/libtools/signals.c index 821ef58a..521a82ab 100755 --- a/src/libtools/signals.c +++ b/src/libtools/signals.c @@ -1057,7 +1057,6 @@ void my_sigactionhandler(int32_t sig, siginfo_t* info, void * ucntx) void emit_signal(x64emu_t* emu, int sig, void* addr, int code) { ucontext_t ctx = {0}; - void* db = NULL; siginfo_t info = {0}; info.si_signo = sig; info.si_errno = (sig==SIGSEGV)?0x1234:0; // MAark as a sign this is a #GP(0) (like privileged instruction) @@ -1065,15 +1064,14 @@ void emit_signal(x64emu_t* emu, int sig, void* addr, int code) info.si_addr = addr; const char* x64name = NULL; const char* elfname = NULL; - if(box64_log>LOG_NONE) { + if(box64_log>LOG_INFO) { x64name = getAddrFunctionName(R_RIP); elfheader_t* elf = FindElfAddress(my_context, R_RIP); if(elf) elfname = ElfName(elf); + printf_log(LOG_NONE, "Emit Signal %d at IP=%p(%s / %s) / addr=%p, code=%d\n", sig, (void*)R_RIP, x64name?x64name:"???", elfname?elfname:"?", addr, code); } - - printf_log(/*LOG_INFO*/LOG_DEBUG, "Emit Signal %d at IP=%p(%s / %s) / addr=%p, code=%d\n", sig, (void*)R_RIP, x64name?x64name:"???", elfname?elfname:"?", addr, code); - my_sigactionhandler_oldcode(sig, 0, &info, &ctx, NULL, db); + my_sigactionhandler_oldcode(sig, 0, &info, &ctx, NULL, NULL); } EXPORT sighandler_t my_signal(x64emu_t* emu, int signum, sighandler_t handler) |