diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2025-04-20 16:23:30 +0200 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2025-04-20 16:23:30 +0200 |
| commit | c6ae7d36dd84ede899c4ba8220e4f89e5eaab03f (patch) | |
| tree | 4f3a60e6ef5145bdaa99edfbbf04c7b90cc3074d | |
| parent | 3836625017c153d1bd0a5ba0722521d85a3d1bfe (diff) | |
| download | box64-c6ae7d36dd84ede899c4ba8220e4f89e5eaab03f.tar.gz box64-c6ae7d36dd84ede899c4ba8220e4f89e5eaab03f.zip | |
[TRACE] Better trace, using maplile name if available, and better write on a dynablock memory log
| -rw-r--r-- | src/elfs/elfloader.c | 5 | ||||
| -rw-r--r-- | src/libtools/signals.c | 2 |
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; |