about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2022-07-16 21:32:38 +0200
committerptitSeb <sebastien.chev@gmail.com>2022-07-16 21:32:38 +0200
commit90f58dbcbe5b1e5e1bb03fd6b7b732e1859c7f29 (patch)
treec0caedd9cf1abf0b4fbe1d053831458b44f3f16e /src
parent729d19ab24a2600789f5a7cf7148f7c025c759f9 (diff)
downloadbox64-90f58dbcbe5b1e5e1bb03fd6b7b732e1859c7f29.tar.gz
box64-90f58dbcbe5b1e5e1bb03fd6b7b732e1859c7f29.zip
Improve trace a bit
Diffstat (limited to 'src')
-rwxr-xr-xsrc/elfs/elfloader.c6
-rwxr-xr-xsrc/libtools/signals.c8
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)