diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2025-01-18 12:20:34 +0100 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2025-01-18 12:20:34 +0100 |
| commit | 802002b7a3d55d4810ac21e2fbbaaa6b35787296 (patch) | |
| tree | 67c926b65d3b62087cb38047c40ec17d07c9faf3 /src/libtools | |
| parent | 69a7c00841ebbceca3890ec72b108b2919af6f45 (diff) | |
| download | box64-802002b7a3d55d4810ac21e2fbbaaa6b35787296.tar.gz box64-802002b7a3d55d4810ac21e2fbbaaa6b35787296.zip | |
[TRACE] Added TID on Strange SIGSEGV with Access Error message
Diffstat (limited to 'src/libtools')
| -rw-r--r-- | src/libtools/signals.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/libtools/signals.c b/src/libtools/signals.c index 89583394..c1c45ba4 100644 --- a/src/libtools/signals.c +++ b/src/libtools/signals.c @@ -1503,6 +1503,7 @@ void my_box64signalhandler(int32_t sig, siginfo_t* info, void * ucntx) void* addr = (void*)info->si_addr; // address that triggered the issue void* rsp = NULL; x64emu_t* emu = thread_get_emu(); + int tid = GetTID(); #ifdef __aarch64__ void * pc = (void*)p->uc_mcontext.pc; struct fpsimd_context *fpsimd = NULL; @@ -1673,7 +1674,7 @@ void my_box64signalhandler(int32_t sig, siginfo_t* info, void * ucntx) if(addr && pc /*&& db*/) { if((glitch_pc!=pc || glitch_addr!=addr || glitch_prot!=prot)) { // probably a glitch due to intensive multitask... - dynarec_log(/*LOG_DEBUG*/LOG_INFO, "SIGSEGV with Access error on %p for %p, db=%p, prot=0x%x, retrying\n", pc, addr, db, prot); + dynarec_log(/*LOG_DEBUG*/LOG_INFO, "%04d|SIGSEGV with Access error on %p for %p, db=%p, prot=0x%x, retrying\n", tid, pc, addr, db, prot); glitch_pc = pc; glitch_addr = addr; glitch_prot = prot; @@ -1681,7 +1682,7 @@ void my_box64signalhandler(int32_t sig, siginfo_t* info, void * ucntx) unlock_signal(); return; // try again } -dynarec_log(/*LOG_DEBUG*/LOG_INFO, "Repeated SIGSEGV with Access error on %p for %p, db=%p, prot=0x%x\n", pc, addr, db, prot); +dynarec_log(/*LOG_DEBUG*/LOG_INFO, "%04d|Repeated SIGSEGV with Access error on %p for %p, db=%p, prot=0x%x\n", tid, pc, addr, db, prot); glitch_pc = NULL; glitch_addr = NULL; glitch_prot = 0; @@ -1728,7 +1729,6 @@ dynarec_log(/*LOG_DEBUG*/LOG_INFO, "Repeated SIGSEGV with Access error on %p for static void* old_addr = 0; static int old_tid = 0; static uint32_t old_prot = 0; - int tid = GetTID(); int mapped = memExist((uintptr_t)addr); const char* signame = (sig==SIGSEGV)?"SIGSEGV":((sig==SIGBUS)?"SIGBUS":((sig==SIGILL)?"SIGILL":"SIGABRT")); rsp = (void*)R_RSP; |