diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2023-10-13 21:18:10 +0200 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2023-10-13 21:18:10 +0200 |
| commit | be24eec9d0bcae7f22e2bdfd074a72a9158f2362 (patch) | |
| tree | f49f37aa6b87202bb9ab898709d0112faa6a04b0 | |
| parent | 60fed04cb75df2d4545898b827713fc7a4cf856d (diff) | |
| download | box64-be24eec9d0bcae7f22e2bdfd074a72a9158f2362.tar.gz box64-be24eec9d0bcae7f22e2bdfd074a72a9158f2362.zip | |
[TRACE] Better trace for mmap error
| -rw-r--r-- | src/emu/x64int3.c | 4 |
1 files changed, 4 insertions, 0 deletions
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 { |