diff options
Diffstat (limited to 'src')
| -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; |