about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2024-09-13 12:09:35 +0200
committerptitSeb <sebastien.chev@gmail.com>2024-09-13 12:09:35 +0200
commited4ff15682222f79f2bfbd2263345a2974bfa6c2 (patch)
tree727373d97a2a4c745ef60137f4b98b660be83011
parentde276ddfa9a4168d55f09b1e21774404826161ee (diff)
downloadbox64-ed4ff15682222f79f2bfbd2263345a2974bfa6c2.tar.gz
box64-ed4ff15682222f79f2bfbd2263345a2974bfa6c2.zip
[BOX32][TRACE] More improved trace for some 32bits functions call
-rwxr-xr-xsrc/emu/x86int3.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/emu/x86int3.c b/src/emu/x86int3.c
index 53e4baa3..185750ef 100755
--- a/src/emu/x86int3.c
+++ b/src/emu/x86int3.c
@@ -302,7 +302,7 @@ void x86Int3(x64emu_t* emu, uintptr_t* addr)
                     snprintf(buff, 255, "%04d|%p: Calling %s(%p, %p, %d, %d, %u, %u, %u, %d, %u, %p, %u, %p)", tid, from_ptrv(*(ptr_t*)from_ptr(R_ESP)), s, from_ptrv(*(ptr_t*)from_ptr(R_ESP+4)), from_ptrv(*(ptr_t*)from_ptr(R_ESP+8)), *(int*)from_ptr(R_ESP+12), *(int*)from_ptr(R_ESP+16), *(uint32_t*)from_ptr(R_ESP+20), *(uint32_t*)from_ptr(R_ESP+24), *(uint32_t*)from_ptr(R_ESP+28), *(int32_t*)from_ptr(R_ESP+32), *(uint32_t*)from_ptr(R_ESP+36), *(void**)from_ptr(R_ESP+40), *(uint32_t*)from_ptr(R_ESP+44), *(void**)from_ptr(R_ESP+48));
                 } else if(strstr(s, "XLoadQueryFont")==s) {
                     snprintf(buff, 255, "%04d|%p: Calling %s(%p, \"%s\")", tid, from_ptrv(*(ptr_t*)from_ptr(R_ESP)), s, from_ptrv(*(ptr_t*)from_ptr(R_ESP+4)), from_ptrv(*(ptr_t*)from_ptr(R_ESP+8)));
-                } else if(strstr(s, "pthread_mutex_lock")==s) {
+                } else if(strstr(s, "pthread_mutex_lock")==s || strstr(s, "pthread_mutex_unlock")==s) {
                     snprintf(buff, 255, "%04d|%p: Calling %s(%p)", tid, from_ptrv(*(ptr_t*)from_ptr(R_ESP)), s, from_ptrv(*(ptr_t*)from_ptr(R_ESP+4)));
                 } else if(strstr(s, "pthread_setname_np")==s) {
                     post = 7;
@@ -316,6 +316,8 @@ void x86Int3(x64emu_t* emu, uintptr_t* addr)
                 } else if(!strcmp(s, "fmod")) {
                     post = 4;
                     snprintf(buff, 255, "%04d|%p: Calling %s(%f, %f)", tid, from_ptrv(*(ptr_t*)from_ptr(R_ESP)), s, *(double*)from_ptr(R_ESP+4), *(double*)from_ptr(R_ESP+12));
+                } else if(strstr(s, "pthread_once")==s) {
+                    snprintf(buff, 255, "%04d|%p: Calling %s(%p[%d], %p)", tid, from_ptrv(*(ptr_t*)from_ptr(R_ESP)), s, from_ptrv(*(ptr_t*)from_ptr(R_ESP+4)), *(int*)from_ptrv(*(ptr_t*)from_ptr(R_ESP+4)), from_ptrv(*(ptr_t*)from_ptr(R_ESP+8)));
                 } else if(!strcmp(s, "posix_memalign")) {
                     post = 8;
                     pu32 = (uint32_t*)from_ptr(*(ptr_t*)from_ptr(R_ESP+4));