From 6a5049b22c791abc4bdcf8268298f9ce3b873df1 Mon Sep 17 00:00:00 2001 From: ptitSeb Date: Thu, 3 Oct 2024 11:35:41 +0200 Subject: [BOX32][TRACE] Some more improved trace --- src/emu/x64run_private.c | 5 +++++ src/emu/x86int3.c | 28 +++++++++++++++++++++++++++- 2 files changed, 32 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/emu/x64run_private.c b/src/emu/x64run_private.c index 5cb8141f..1d48598a 100644 --- a/src/emu/x64run_private.c +++ b/src/emu/x64run_private.c @@ -1294,6 +1294,11 @@ void PrintTrace(x64emu_t* emu, uintptr_t ip, int dynarec) uintptr_t nextaddr = *(uintptr_t*)(R_RAX+PK(2)); if(!printFunctionAddr(nextaddr, "=> ")) printf_log(LOG_NONE, " => %p", (void*)nextaddr); + } else if(PK(1)==0xE0) { + uintptr_t nextaddr = R_RAX; + if(is32bits) nextaddr &= 0xffffffff; + if(!printFunctionAddr(nextaddr, "=> ")) + printf_log(LOG_NONE, " => %p", (void*)nextaddr); } else if((PK(1)==0x14) && (PK(2)==0x25)) { uintptr_t nextaddr = is32bits?(*(uint32_t*)(uintptr_t)PK32(3)):(*(uintptr_t*)(uintptr_t)PK32(3)); printf_log(LOG_NONE, " => %p", (void*)nextaddr); diff --git a/src/emu/x86int3.c b/src/emu/x86int3.c index 0b2cc1b1..255a6f4c 100755 --- a/src/emu/x86int3.c +++ b/src/emu/x86int3.c @@ -146,6 +146,18 @@ void x86Int3(x64emu_t* emu, uintptr_t* addr) } else if(!strcmp(s, "chdir")) { pu32=(uint32_t*)from_ptrv(R_ESP+4); snprintf(buff, 255, "%04d|%p: Calling %s(\"%s\")", tid, from_ptrv(*(ptr_t*)from_ptr(R_ESP)), (char *)s, pu32?((pu32==(uint32_t*)1)?"/1/":(char*)pu32):"/0/"); + } else if(!strcmp(s, "poll")) { + pu32=from_ptrv(*(ptr_t*)from_ptrv(R_ESP+4)); + char tmp[50]; + char tmp2[50] = {0}; + uint32_t n = from_ptri(uint32_t, R_ESP+8); + for(int ii=0; ii0) { + char tmp[50]; + char tmp2[50] = {0}; + uint32_t n = from_ptri(uint32_t, R_ESP+8); + for(int ii=0; ii>16); + strncat(tmp2, tmp, 49); + } + snprintf(buff2, 63, "[%s]", tmp2); + } + case 13: if(R_EAX==0x25E) + snprintf(buff2, 63, "%s", "here"); + break; } if(perr==1 && ((int)R_EAX)<0) snprintf(buff3, 63, " (errno=%d:\"%s\")", errno, strerror(errno)); -- cgit 1.4.1