diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2024-10-08 13:11:42 +0200 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2024-10-08 13:11:42 +0200 |
| commit | 85fc57faa32625f6b8294f0081d2af2e821750d9 (patch) | |
| tree | 9606bf98062591622ccb9b26c511fd25a6f7fbdb /src | |
| parent | c8e10a004bbca5dcb653dd0a30833cded45bc612 (diff) | |
| download | box64-85fc57faa32625f6b8294f0081d2af2e821750d9.tar.gz box64-85fc57faa32625f6b8294f0081d2af2e821750d9.zip | |
Improve debugging trace of rb_tree
Diffstat (limited to 'src')
| -rw-r--r-- | src/box64context.c | 2 | ||||
| -rw-r--r-- | src/custommem.c | 8 | ||||
| -rw-r--r-- | src/include/rbtree.h | 2 | ||||
| -rw-r--r-- | src/tools/rbtree.c | 12 |
4 files changed, 13 insertions, 11 deletions
diff --git a/src/box64context.c b/src/box64context.c index 928357f4..2a2e1cae 100644 --- a/src/box64context.c +++ b/src/box64context.c @@ -287,7 +287,7 @@ box64context_t *NewBox64Context(int argc) initAllHelpers(context); #ifdef DYNAREC - context->db_sizes = init_rbtree(); + context->db_sizes = init_rbtree("db_sizes"); #endif return context; diff --git a/src/custommem.c b/src/custommem.c index f0b1f72d..f7ddf6d9 100644 --- a/src/custommem.c +++ b/src/custommem.c @@ -1924,12 +1924,12 @@ void init_custommem_helper(box64context_t* ctx) if(inited) // already initialized return; inited = 1; - blockstree = init_rbtree(); + blockstree = init_rbtree("blockstree"); // if there is some blocks already if(n_blocks) for(int i=0; i<n_blocks; ++i) rb_set(blockstree, (uintptr_t)p_blocks[i].block, (uintptr_t)p_blocks[i].block+p_blocks[i].size, i); - memprot = init_rbtree(); + memprot = init_rbtree("memprot"); sigfillset(&critical_prot); init_mutexes(); #ifdef DYNAREC @@ -1954,9 +1954,9 @@ void init_custommem_helper(box64context_t* ctx) #endif pthread_atfork(NULL, NULL, atfork_child_custommem); // init mapallmem list - mapallmem = init_rbtree(); + mapallmem = init_rbtree("mapallmem"); // init mmapmem list - mmapmem = init_rbtree(); + mmapmem = init_rbtree("mapmem"); // Load current MMap loadProtectionFromMap(); reserveHighMem(); diff --git a/src/include/rbtree.h b/src/include/rbtree.h index c210d55d..0266c144 100644 --- a/src/include/rbtree.h +++ b/src/include/rbtree.h @@ -5,7 +5,7 @@ typedef struct rbtree rbtree; -rbtree* init_rbtree(); +rbtree* init_rbtree(const char* name); void delete_rbtree(rbtree *tree); uint32_t rb_get(rbtree *tree, uintptr_t addr); diff --git a/src/tools/rbtree.c b/src/tools/rbtree.c index 257a404f..211a1a4a 100644 --- a/src/tools/rbtree.c +++ b/src/tools/rbtree.c @@ -27,13 +27,15 @@ typedef struct rbnode { typedef struct rbtree { rbnode *root; + const char* name; int is_unstable; } rbtree; -rbtree* init_rbtree() { +rbtree* init_rbtree(const char* name) { rbtree* tree = rbtreeMalloc(sizeof(rbtree)); tree->root = NULL; tree->is_unstable = 0; + tree->name = name?"(rbtree)":name; return tree; } @@ -591,7 +593,7 @@ int rb_get_end(rbtree* tree, uintptr_t addr, uint32_t* val, uintptr_t* end) { int rb_set(rbtree *tree, uintptr_t start, uintptr_t end, uint32_t data) { // printf("rb_set( "); print_rbtree(tree); printf(" , 0x%lX, 0x%lX, %hhu);\n", start, end, data); fflush(stdout); -dynarec_log(LOG_DEBUG, "set 0x%lX, 0x%lX, 0x%x\n", start, end, data); +dynarec_log(LOG_DEBUG, "set %s: 0x%lX, 0x%lX, 0x%x\n", tree->name, start, end, data); if (!tree->root) { return add_range(tree, start, end, data); } @@ -724,7 +726,7 @@ dynarec_log(LOG_DEBUG, "set 0x%lX, 0x%lX, 0x%x\n", start, end, data); int rb_unset(rbtree *tree, uintptr_t start, uintptr_t end) { // printf("rb_unset( "); print_rbtree(tree); printf(" , 0x%lX, 0x%lX);\n", start, end); fflush(stdout); -dynarec_log(LOG_DEBUG, "rb_unset(tree, 0x%lX, 0x%lX);\n", start, end); +dynarec_log(LOG_DEBUG, "unset: %s 0x%lX, 0x%lX);\n", tree->name, start, end); if (!tree->root) return 0; rbnode *node = tree->root, *prev = NULL, *next = NULL; @@ -784,7 +786,7 @@ dynarec_log(LOG_DEBUG, "rb_unset(tree, 0x%lX, 0x%lX);\n", start, end); uintptr_t rb_get_righter(rbtree* tree) { -dynarec_log(LOG_DEBUG, "rb_get_righter(tree);\n"); +dynarec_log(LOG_DEBUG, "rb_get_righter(%s);\n", tree->name); if (!tree->root) return 0; rbnode *node = tree->root; @@ -858,7 +860,7 @@ void print_rbtree(const rbtree *tree) { #ifdef RBTREE_TEST int main() { - rbtree* tree = init_rbtree(); + rbtree* tree = init_rbtree("test"); print_rbtree(tree); fflush(stdout); /*int ret; ret = rb_set(tree, 0x43, 0x44, 0x01); |