From be24eec9d0bcae7f22e2bdfd074a72a9158f2362 Mon Sep 17 00:00:00 2001 From: ptitSeb Date: Fri, 13 Oct 2023 21:18:10 +0200 Subject: [TRACE] Better trace for mmap error --- src/emu/x64int3.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/emu/x64int3.c b/src/emu/x64int3.c index d58574c3..c602f61b 100644 --- a/src/emu/x64int3.c +++ b/src/emu/x64int3.c @@ -265,6 +265,7 @@ void x64Int3(x64emu_t* emu, uintptr_t* addr) } else if (!strcmp(s, "mmap64") || !strcmp(s, "mmap")) { snprintf(buff, 256, "%04d|%p: Calling %s(%p, %lu, 0x%x, 0x%x, %d, %ld)", tid, *(void**)(R_RSP), s, (void*)R_RDI, R_RSI, (int)(R_RDX), (int)R_RCX, (int)R_R8, R_R9); + perr = 3; } else if (!strcmp(s, "sscanf")) { tmp = (char*)(R_RSI); snprintf(buff, 256, "%04d|%p: Calling %s(%p, \"%s\" (,%p))", tid, *(void**)(R_RSP), s, (void*)R_RDI, (tmp)?tmp:"(nil)", (void*)(R_RDX)); @@ -309,6 +310,9 @@ void x64Int3(x64emu_t* emu, uintptr_t* addr) snprintf(buff3, 64, " (errno=%d:\"%s\")", errno, strerror(errno)); else if(perr==2 && R_EAX==0) snprintf(buff3, 64, " (errno=%d:\"%s\")", errno, strerror(errno)); + else if(perr==3 && ((int64_t)R_RAX)==-1) + snprintf(buff3, 64, " (errno=%d:\"%s\")", errno, strerror(errno)); + if(cycle_log) snprintf(buffret, 128, "0x%lX%s%s", R_RAX, buff2, buff3); else { -- cgit 1.4.1