mirror of
https://github.com/Ed94/raddebugger.git
synced 2026-08-06 13:58:40 +00:00
add tracking to dbgi scopes
This commit is contained in:
+8
-2
@@ -262,12 +262,14 @@ di_scope_open(void)
|
|||||||
scope = push_array_no_zero(di_tctx->arena, DI_Scope, 1);
|
scope = push_array_no_zero(di_tctx->arena, DI_Scope, 1);
|
||||||
}
|
}
|
||||||
MemoryZeroStruct(scope);
|
MemoryZeroStruct(scope);
|
||||||
|
DLLPushBack(di_tctx->first_scope, di_tctx->last_scope, scope);
|
||||||
return scope;
|
return scope;
|
||||||
}
|
}
|
||||||
|
|
||||||
internal void
|
internal void
|
||||||
di_scope_close(DI_Scope *scope)
|
di_scope_close(DI_Scope *scope)
|
||||||
{
|
{
|
||||||
|
DLLRemove(di_tctx->first_scope, di_tctx->last_scope, scope);
|
||||||
for(DI_Touch *t = scope->first_touch, *next = 0; t != 0; t = next)
|
for(DI_Touch *t = scope->first_touch, *next = 0; t != 0; t = next)
|
||||||
{
|
{
|
||||||
next = t->next;
|
next = t->next;
|
||||||
@@ -1349,7 +1351,6 @@ di_search_thread__entry_point(void *p)
|
|||||||
for(;;)
|
for(;;)
|
||||||
{
|
{
|
||||||
Temp scratch = scratch_begin(0, 0);
|
Temp scratch = scratch_begin(0, 0);
|
||||||
DI_Scope *di_scope = di_scope_open();
|
|
||||||
|
|
||||||
//- rjf: get next key, unpack
|
//- rjf: get next key, unpack
|
||||||
U128 key = di_u2s_dequeue_req(thread_idx);
|
U128 key = di_u2s_dequeue_req(thread_idx);
|
||||||
@@ -1380,6 +1381,9 @@ di_search_thread__entry_point(void *p)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//- rjf: begin debug info scope
|
||||||
|
DI_Scope *di_scope = di_scope_open();
|
||||||
|
|
||||||
//- rjf: get all rdis
|
//- rjf: get all rdis
|
||||||
U64 rdis_count = params.dbgi_keys.count;
|
U64 rdis_count = params.dbgi_keys.count;
|
||||||
RDI_Parsed **rdis = push_array(scratch.arena, RDI_Parsed *, rdis_count);
|
RDI_Parsed **rdis = push_array(scratch.arena, RDI_Parsed *, rdis_count);
|
||||||
@@ -1428,6 +1432,9 @@ di_search_thread__entry_point(void *p)
|
|||||||
cancelled = (cancelled || out->cancelled);
|
cancelled = (cancelled || out->cancelled);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//- rjf: end debug info scope
|
||||||
|
di_scope_close(di_scope);
|
||||||
|
|
||||||
//- rjf: list -> array
|
//- rjf: list -> array
|
||||||
DI_SearchItemArray items = {0};
|
DI_SearchItemArray items = {0};
|
||||||
if(arena != 0 && !cancelled)
|
if(arena != 0 && !cancelled)
|
||||||
@@ -1496,7 +1503,6 @@ di_search_thread__entry_point(void *p)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
di_scope_close(di_scope);
|
|
||||||
scratch_end(scratch);
|
scratch_end(scratch);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -225,6 +225,7 @@ typedef struct DI_Scope DI_Scope;
|
|||||||
struct DI_Scope
|
struct DI_Scope
|
||||||
{
|
{
|
||||||
DI_Scope *next;
|
DI_Scope *next;
|
||||||
|
DI_Scope *prev;
|
||||||
DI_Touch *first_touch;
|
DI_Touch *first_touch;
|
||||||
DI_Touch *last_touch;
|
DI_Touch *last_touch;
|
||||||
};
|
};
|
||||||
@@ -233,6 +234,8 @@ typedef struct DI_TCTX DI_TCTX;
|
|||||||
struct DI_TCTX
|
struct DI_TCTX
|
||||||
{
|
{
|
||||||
Arena *arena;
|
Arena *arena;
|
||||||
|
DI_Scope *first_scope;
|
||||||
|
DI_Scope *last_scope;
|
||||||
DI_Scope *free_scope;
|
DI_Scope *free_scope;
|
||||||
DI_Touch *free_touch;
|
DI_Touch *free_touch;
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user