about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2025-05-19 16:02:15 +0200
committerptitSeb <sebastien.chev@gmail.com>2025-05-19 16:02:15 +0200
commit0e7b98611676bf2724efb8a505956914b9e6e380 (patch)
tree231870157fddd572a49320f0578625d7c3dd7025 /src
parentbe16c14dcb780dabefa3ad0a8d768d0142e2d095 (diff)
downloadbox64-0e7b98611676bf2724efb8a505956914b9e6e380.tar.gz
box64-0e7b98611676bf2724efb8a505956914b9e6e380.zip
[TRACE] Slight better trace when running with custommem memory tracker
Diffstat (limited to 'src')
-rw-r--r--src/custommem.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/src/custommem.c b/src/custommem.c
index f61fd978..6e99bcdd 100644
--- a/src/custommem.c
+++ b/src/custommem.c
@@ -534,7 +534,7 @@ void* map128_customMalloc(size_t size, int is32bits)
     size = 128;
     mutex_lock(&mutex_blocks);
     for(int i=0; i<n_blocks; ++i) {
-        if(p_blocks[i].block && (p_blocks[i].type==BTYPE_MAP) && p_blocks[i].maxfree>=128 && (!box64_is32bits || ((!is32bits && p_blocks[i].block>(void*)0xffffffffLL)) || (is32bits && p_blocks[i].block<(void*)0x100000000LL))) {
+        if(p_blocks[i].block && (p_blocks[i].type==BTYPE_MAP) && p_blocks[i].maxfree && (!box64_is32bits || ((!is32bits && p_blocks[i].block>(void*)0xffffffffLL)) || (is32bits && p_blocks[i].block<(void*)0x100000000LL))) {
             // look for a free block
             uint8_t* map = p_blocks[i].first;
             for(uint32_t idx=p_blocks[i].lowest; idx<(p_blocks[i].size>>7); ++idx) {
@@ -548,6 +548,9 @@ void* map128_customMalloc(size_t size, int is32bits)
                     return p_blocks[i].block+(idx<<7);
                 }
             }
+            #ifdef TRACE_MEMSTAT
+            printf_log(LOG_INFO, "Warning, customme p_block[%d] MAP has maxfree=%d and lowest=%d but not free block found\n", i, p_blocks[i].maxfree, p_blocks[i].lowest);
+            #endif
         }
     }
     // add a new block
@@ -608,7 +611,7 @@ void* map128_customMalloc(size_t size, int is32bits)
         return NULL;
     }
     #ifdef TRACE_MEMSTAT
-    printf_log(LOG_INFO, "Custommem: allocation %p-%p for 128byte MAP Alloc p_blocks[%d]\n", p, p+allocsize, i);
+    printf_log(LOG_INFO, "Custommem: allocation %p-%p for %dbits 128byte MAP Alloc p_blocks[%d]\n", p, p+allocsize, is32bits?32:64, i);
     #endif
     // alloc 1st block
     void* ret = p_blocks[i].block;
@@ -719,7 +722,7 @@ void* internal_customMalloc(size_t size, int is32bits)
         return NULL;
     }
     #ifdef TRACE_MEMSTAT
-    printf_log(LOG_INFO, "Custommem: allocation %p-%p for LIST Alloc p_blocks[%d]\n", p, p+allocsize, i);
+    printf_log(LOG_INFO, "Custommem: allocation %p-%p for %dbits LIST Alloc p_blocks[%d]\n", p, p+allocsize, is32bits?32:64, i);
     #endif
     // alloc 1st block
     void* ret  = allocBlock(p_blocks[i].block, p, size, &p_blocks[i].first);
@@ -836,6 +839,9 @@ void internal_customFree(void* p, int is32bits)
                 map[idx>>3] ^= (1<<(idx&7));
                 l->maxfree += 128;
             }   // warn if double free?
+            #ifdef TRACE_MEMSTAT
+            else printf_log(LOG_INFO, "Warning, customme free(%p) from MAP block %p, but not found as allocated\n", p, l);
+            #endif
             if(l->lowest>idx)
                 l->lowest = idx;
             mutex_unlock(&mutex_blocks);