about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2025-04-20 16:23:30 +0200
committerptitSeb <sebastien.chev@gmail.com>2025-04-20 16:23:30 +0200
commitc6ae7d36dd84ede899c4ba8220e4f89e5eaab03f (patch)
tree4f3a60e6ef5145bdaa99edfbbf04c7b90cc3074d /src
parent3836625017c153d1bd0a5ba0722521d85a3d1bfe (diff)
downloadbox64-c6ae7d36dd84ede899c4ba8220e4f89e5eaab03f.tar.gz
box64-c6ae7d36dd84ede899c4ba8220e4f89e5eaab03f.zip
[TRACE] Better trace, using maplile name if available, and better write on a dynablock memory log
Diffstat (limited to 'src')
-rw-r--r--src/elfs/elfloader.c5
-rw-r--r--src/libtools/signals.c2
2 files changed, 5 insertions, 2 deletions
diff --git a/src/elfs/elfloader.c b/src/elfs/elfloader.c
index f0ab7320..b8fbef38 100644
--- a/src/elfs/elfloader.c
+++ b/src/elfs/elfloader.c
@@ -1940,8 +1940,11 @@ const char* getAddrFunctionName(uintptr_t addr)
     } else {
         if (elf) {
             sprintf(ret, "%s + 0x%lx", ElfName(elf), addr - (uintptr_t)GetBaseAddress(elf));
-        } else
+        } else if(IsAddrFileMapped(addr, &symbname, &start)) {
+            sprintf(ret, "%s+0x%lx", symbname, addr-start);
+        } else {
             sprintf(ret, "???");
+        }
     }
     return ret;
 }
\ No newline at end of file
diff --git a/src/libtools/signals.c b/src/libtools/signals.c
index 2d066940..6e1b1d89 100644
--- a/src/libtools/signals.c
+++ b/src/libtools/signals.c
@@ -1798,7 +1798,7 @@ void my_box64signalhandler(int32_t sig, siginfo_t* info, void * ucntx)
         // done
         if((prot&PROT_WRITE)/*|| (prot&PROT_DYNAREC)*/) {
             unlock_signal();
-            dynarec_log(LOG_INFO, "Writting from %p(%s) to %p!\n", (void*)R_RIP, getAddrFunctionName(R_RIP), (void*)addr);
+            dynarec_log(LOG_INFO, "Writting from %04d|%p(%s, native=%s) to %p!\n", GetTID(), (void*)x64pc, getAddrFunctionName(x64pc), db?"Dynablock":GetNativeName(pc),(void*)addr);
             // if there is no write permission, don't return and continue to program signal handling
             relockMutex(Locks);
             return;