From c6ae7d36dd84ede899c4ba8220e4f89e5eaab03f Mon Sep 17 00:00:00 2001 From: ptitSeb Date: Sun, 20 Apr 2025 16:23:30 +0200 Subject: [TRACE] Better trace, using maplile name if available, and better write on a dynablock memory log --- src/elfs/elfloader.c | 5 ++++- src/libtools/signals.c | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) (limited to 'src') 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; -- cgit 1.4.1