diff --git a/project.4coder b/project.4coder index 9dc98bf1..6abaea66 100644 --- a/project.4coder +++ b/project.4coder @@ -46,7 +46,7 @@ load_paths = commands = { //- rjf: [raddbg] - .f1 = { .win = "raddbg_stable --ipc kill_all && build raddbg telemetry", .linux = "", .out = "*compilation*", .footer_panel = true, .save_dirty_files = true, .cursor_at_end = false, }, + .f1 = { .win = "raddbg_stable --ipc kill_all && build raddbg meta telemetry", .linux = "", .out = "*compilation*", .footer_panel = true, .save_dirty_files = true, .cursor_at_end = false, }, // .f1 = { .win = "raddbg_stable --ipc kill_all && build radbin debug telemetry", .linux = "", .out = "*compilation*", .footer_panel = true, .save_dirty_files = true, .cursor_at_end = false, }, //- rjf: [raddbg wsl] diff --git a/src/raddbg/generated/raddbg.meta.c b/src/raddbg/generated/raddbg.meta.c index 140275af..875b6d11 100644 --- a/src/raddbg/generated/raddbg.meta.c +++ b/src/raddbg/generated/raddbg.meta.c @@ -503,14 +503,14 @@ Rng1U64 rd_reg_slot_range_table[47] = {OffsetOf(RD_Regs, process), OffsetOf(RD_Regs, process) + sizeof(CTRL_Handle)}, {OffsetOf(RD_Regs, thread), OffsetOf(RD_Regs, thread) + sizeof(CTRL_Handle)}, {OffsetOf(RD_Regs, ctrl_entity), OffsetOf(RD_Regs, ctrl_entity) + sizeof(CTRL_Handle)}, -{OffsetOf(RD_Regs, window), OffsetOf(RD_Regs, window) + sizeof(RD_CfgID)}, -{OffsetOf(RD_Regs, panel), OffsetOf(RD_Regs, panel) + sizeof(RD_CfgID)}, -{OffsetOf(RD_Regs, tab), OffsetOf(RD_Regs, tab) + sizeof(RD_CfgID)}, -{OffsetOf(RD_Regs, view), OffsetOf(RD_Regs, view) + sizeof(RD_CfgID)}, -{OffsetOf(RD_Regs, prev_tab), OffsetOf(RD_Regs, prev_tab) + sizeof(RD_CfgID)}, -{OffsetOf(RD_Regs, dst_panel), OffsetOf(RD_Regs, dst_panel) + sizeof(RD_CfgID)}, -{OffsetOf(RD_Regs, cfg), OffsetOf(RD_Regs, cfg) + sizeof(RD_CfgID)}, -{OffsetOf(RD_Regs, cfg_list), OffsetOf(RD_Regs, cfg_list) + sizeof(RD_CfgIDList)}, +{OffsetOf(RD_Regs, window), OffsetOf(RD_Regs, window) + sizeof(CFG_ID)}, +{OffsetOf(RD_Regs, panel), OffsetOf(RD_Regs, panel) + sizeof(CFG_ID)}, +{OffsetOf(RD_Regs, tab), OffsetOf(RD_Regs, tab) + sizeof(CFG_ID)}, +{OffsetOf(RD_Regs, view), OffsetOf(RD_Regs, view) + sizeof(CFG_ID)}, +{OffsetOf(RD_Regs, prev_tab), OffsetOf(RD_Regs, prev_tab) + sizeof(CFG_ID)}, +{OffsetOf(RD_Regs, dst_panel), OffsetOf(RD_Regs, dst_panel) + sizeof(CFG_ID)}, +{OffsetOf(RD_Regs, cfg), OffsetOf(RD_Regs, cfg) + sizeof(CFG_ID)}, +{OffsetOf(RD_Regs, cfg_list), OffsetOf(RD_Regs, cfg_list) + sizeof(CFG_IDList)}, {OffsetOf(RD_Regs, eval_space), OffsetOf(RD_Regs, eval_space) + sizeof(E_Space)}, {OffsetOf(RD_Regs, unwind_count), OffsetOf(RD_Regs, unwind_count) + sizeof(U64)}, {OffsetOf(RD_Regs, inline_depth), OffsetOf(RD_Regs, inline_depth) + sizeof(U64)}, diff --git a/src/raddbg/generated/raddbg.meta.h b/src/raddbg/generated/raddbg.meta.h index 14e419f0..da4c5954 100644 --- a/src/raddbg/generated/raddbg.meta.h +++ b/src/raddbg/generated/raddbg.meta.h @@ -449,14 +449,14 @@ CTRL_Handle module; CTRL_Handle process; CTRL_Handle thread; CTRL_Handle ctrl_entity; -RD_CfgID window; -RD_CfgID panel; -RD_CfgID tab; -RD_CfgID view; -RD_CfgID prev_tab; -RD_CfgID dst_panel; -RD_CfgID cfg; -RD_CfgIDList cfg_list; +CFG_ID window; +CFG_ID panel; +CFG_ID tab; +CFG_ID view; +CFG_ID prev_tab; +CFG_ID dst_panel; +CFG_ID cfg; +CFG_IDList cfg_list; E_Space eval_space; U64 unwind_count; U64 inline_depth; diff --git a/src/raddbg/raddbg.mdesk b/src/raddbg/raddbg.mdesk index 2e24874c..143b0a78 100644 --- a/src/raddbg/raddbg.mdesk +++ b/src/raddbg/raddbg.mdesk @@ -713,14 +713,14 @@ RD_RegTable: {CTRL_Handle ctrl_entity CtrlEntity } // rjf: cfgs - {RD_CfgID window Window } - {RD_CfgID panel Panel } - {RD_CfgID tab Tab } - {RD_CfgID view View } - {RD_CfgID prev_tab PrevTab } - {RD_CfgID dst_panel DstPanel } - {RD_CfgID cfg Cfg } - {RD_CfgIDList cfg_list CfgList } + {CFG_ID window Window } + {CFG_ID panel Panel } + {CFG_ID tab Tab } + {CFG_ID view View } + {CFG_ID prev_tab PrevTab } + {CFG_ID dst_panel DstPanel } + {CFG_ID cfg Cfg } + {CFG_IDList cfg_list CfgList } // rjf: evaluation space {E_Space eval_space EvalSpace } diff --git a/src/raddbg/raddbg_core.c b/src/raddbg/raddbg_core.c index 7b3cb5c7..98c750a9 100644 --- a/src/raddbg/raddbg_core.c +++ b/src/raddbg/raddbg_core.c @@ -9,29 +9,6 @@ #include "generated/raddbg.meta.c" -//////////////////////////////// -//~ rjf: Config ID Type Functions - -internal void -rd_cfg_id_list_push(Arena *arena, RD_CfgIDList *list, RD_CfgID id) -{ - RD_CfgIDNode *n = push_array(arena, RD_CfgIDNode, 1); - n->v = id; - SLLQueuePush(list->first, list->last, n); - list->count += 1; -} - -internal RD_CfgIDList -rd_cfg_id_list_copy(Arena *arena, RD_CfgIDList *src) -{ - RD_CfgIDList result = {0}; - for(RD_CfgIDNode *n = src->first; n != 0; n = n->next) - { - rd_cfg_id_list_push(arena, &result, n->v); - } - return result; -} - //////////////////////////////// //~ rjf: Registers Type Functions @@ -39,7 +16,7 @@ internal void rd_regs_copy_contents(Arena *arena, RD_Regs *dst, RD_Regs *src) { MemoryCopyStruct(dst, src); - dst->cfg_list = rd_cfg_id_list_copy(arena, &src->cfg_list); + dst->cfg_list = cfg_id_list_copy(arena, &src->cfg_list); dst->file_path = push_str8_copy(arena, src->file_path); dst->lines = d_line_list_copy(arena, &src->lines); dst->expr = push_str8_copy(arena, src->expr); @@ -47,7 +24,7 @@ rd_regs_copy_contents(Arena *arena, RD_Regs *dst, RD_Regs *src) dst->cmd_name = push_str8_copy(arena, src->cmd_name); if(dst->cfg_list.count == 0 && dst->cfg != 0) { - rd_cfg_id_list_push(arena, &dst->cfg_list, dst->cfg); + cfg_id_list_push(arena, &dst->cfg_list, dst->cfg); } } @@ -368,7 +345,7 @@ rd_cfg_release_all_children(RD_Cfg *cfg) } internal RD_Cfg * -rd_cfg_from_id(RD_CfgID id) +rd_cfg_from_id(CFG_ID id) { RD_Cfg *result = &rd_nil_cfg; if(id != 0 && @@ -1664,7 +1641,7 @@ rd_cfg_from_eval_space(E_Space space) RD_Cfg *cfg = &rd_nil_cfg; if(space.kind == RD_EvalSpaceKind_MetaCfg) { - RD_CfgID id = space.u64s[0]; + CFG_ID id = space.u64s[0]; cfg = rd_cfg_from_id(id); } return cfg; @@ -2454,7 +2431,7 @@ internal RD_ViewState * rd_view_state_from_cfg(RD_Cfg *cfg) { RD_ViewState *view_state = &rd_nil_view_state; - RD_CfgID id = cfg->id; + CFG_ID id = cfg->id; if(id != 0 && id == rd_state->view_state_last_accessed_id && id == rd_state->view_state_last_accessed->cfg_id) @@ -5803,7 +5780,7 @@ rd_window_state_from_cfg(RD_Cfg *cfg) { //- rjf: unpack RD_Cfg *window_cfg = rd_window_from_cfg(cfg); - RD_CfgID id = window_cfg->id; + CFG_ID id = window_cfg->id; //- rjf: scan for existing window RD_WindowState *ws = &rd_nil_window_state; @@ -10660,7 +10637,7 @@ rd_regs_fill_slot_from_string(RD_RegSlot slot, String8 query_expr, String8 strin if(!good && str8_match(str8_prefix(string, 1), str8_lit("$"), 0)) { String8 numeric_part = str8_skip(string, 1); - RD_CfgID id = u64_from_str8(numeric_part, 16); + CFG_ID id = u64_from_str8(numeric_part, 16); rd_regs()->cfg = id; good = 1; } @@ -17317,15 +17294,15 @@ rd_frame(void) // if(rd_state->frame_depth == 1) { - RD_CfgIDList windows_to_show = {0}; + CFG_IDList windows_to_show = {0}; for(RD_WindowState *w = rd_state->first_window_state; w != &rd_nil_window_state; w = w->order_next) { if(w->frames_alive == 1) { - rd_cfg_id_list_push(scratch.arena, &windows_to_show, w->cfg_id); + cfg_id_list_push(scratch.arena, &windows_to_show, w->cfg_id); } } - for(RD_CfgIDNode *n = windows_to_show.first; n != 0; n = n->next) + for(CFG_IDNode *n = windows_to_show.first; n != 0; n = n->next) { RD_Cfg *window = rd_cfg_from_id(n->v); RD_WindowState *ws = rd_window_state_from_cfg(window); diff --git a/src/raddbg/raddbg_core.h b/src/raddbg/raddbg_core.h index 1f54172d..dcc4a6b9 100644 --- a/src/raddbg/raddbg_core.h +++ b/src/raddbg/raddbg_core.h @@ -4,26 +4,6 @@ #ifndef RADDBG_CORE_H #define RADDBG_CORE_H -//////////////////////////////// -//~ rjf: Config IDs - -typedef U64 RD_CfgID; - -typedef struct RD_CfgIDNode RD_CfgIDNode; -struct RD_CfgIDNode -{ - RD_CfgIDNode *next; - RD_CfgID v; -}; - -typedef struct RD_CfgIDList RD_CfgIDList; -struct RD_CfgIDList -{ - RD_CfgIDNode *first; - RD_CfgIDNode *last; - U64 count; -}; - //////////////////////////////// //~ rjf: Key Bindings @@ -39,7 +19,7 @@ struct RD_KeyMapNode { RD_KeyMapNode *name_hash_next; RD_KeyMapNode *binding_hash_next; - RD_CfgID cfg_id; + CFG_ID cfg_id; String8 name; RD_Binding binding; }; @@ -197,7 +177,7 @@ struct RD_ViewState // rjf: hash links & key RD_ViewState *hash_next; RD_ViewState *hash_prev; - RD_CfgID cfg_id; + CFG_ID cfg_id; // rjf: touch info U64 last_frame_index_touched; @@ -278,7 +258,7 @@ struct RD_Cfg RD_Cfg *next; RD_Cfg *prev; RD_Cfg *parent; - RD_CfgID id; + CFG_ID id; String8 string; }; @@ -432,7 +412,7 @@ struct RD_WindowState RD_WindowState *order_prev; RD_WindowState *hash_next; RD_WindowState *hash_prev; - RD_CfgID cfg_id; + CFG_ID cfg_id; U64 frames_alive; U64 last_frame_index_touched; @@ -470,8 +450,8 @@ struct RD_WindowState B32 query_is_active; Arena *query_arena; RD_Regs *query_regs; - RD_CfgID query_view_id; - RD_CfgID query_last_view_id; + CFG_ID query_view_id; + CFG_ID query_last_view_id; // rjf: hover eval state B32 hover_eval_focused; @@ -674,7 +654,7 @@ struct RD_State RD_CfgSlot *cfg_id_slots; RD_CfgNode *free_cfg_id_node; U64 cfg_id_gen; - RD_CfgID cfg_last_accessed_id; + CFG_ID cfg_last_accessed_id; RD_Cfg *cfg_last_accessed; U64 cfg_change_gen; @@ -682,23 +662,23 @@ struct RD_State U64 window_state_slots_count; RD_WindowStateSlot *window_state_slots; RD_WindowState *free_window_state; - RD_CfgID last_focused_window; + CFG_ID last_focused_window; RD_WindowState *first_window_state; RD_WindowState *last_window_state; - RD_CfgID window_state_last_accessed_id; + CFG_ID window_state_last_accessed_id; RD_WindowState *window_state_last_accessed; // rjf: view state cache U64 view_state_slots_count; RD_ViewStateSlot *view_state_slots; RD_ViewState *free_view_state; - RD_CfgID view_state_last_accessed_id; + CFG_ID view_state_last_accessed_id; RD_ViewState *view_state_last_accessed; // rjf: bind change Arena *bind_change_arena; B32 bind_change_active; - RD_CfgID bind_change_binding_id; + CFG_ID bind_change_binding_id; String8 bind_change_cmd_name; // rjf: pre-stop focused window @@ -755,14 +735,8 @@ read_only global RD_WindowState rd_nil_window_state = }; global RD_State *rd_state = 0; -global RD_CfgID rd_last_drag_drop_panel = 0; -global RD_CfgID rd_last_drag_drop_prev_tab = 0; - -//////////////////////////////// -//~ rjf: Config ID Type Functions - -internal void rd_cfg_id_list_push(Arena *arena, RD_CfgIDList *list, RD_CfgID id); -internal RD_CfgIDList rd_cfg_id_list_copy(Arena *arena, RD_CfgIDList *src); +global CFG_ID rd_last_drag_drop_panel = 0; +global CFG_ID rd_last_drag_drop_prev_tab = 0; //////////////////////////////// //~ rjf: Registers Type Functions @@ -807,7 +781,7 @@ internal void rd_name_release(String8 string); internal RD_Cfg *rd_cfg_alloc(void); internal void rd_cfg_release(RD_Cfg *cfg); internal void rd_cfg_release_all_children(RD_Cfg *cfg); -internal RD_Cfg *rd_cfg_from_id(RD_CfgID id); +internal RD_Cfg *rd_cfg_from_id(CFG_ID id); internal RD_Cfg *rd_cfg_new(RD_Cfg *parent, String8 string); internal RD_Cfg *rd_cfg_newf(RD_Cfg *parent, char *fmt, ...); internal RD_Cfg *rd_cfg_new_replace(RD_Cfg *parent, String8 string); diff --git a/src/raddbg/raddbg_eval.c b/src/raddbg/raddbg_eval.c index d07597b5..785f1475 100644 --- a/src/raddbg/raddbg_eval.c +++ b/src/raddbg/raddbg_eval.c @@ -636,7 +636,7 @@ E_TYPE_ACCESS_FUNCTION_DEF(cfgs) str8_match(str8_prefix(rhs->string, 1), str8_lit("$"), 0)) { String8 numeric_part = str8_skip(rhs->string, 1); - RD_CfgID id = u64_from_str8(numeric_part, 16); + CFG_ID id = u64_from_str8(numeric_part, 16); RD_Cfg *cfg = rd_cfg_from_id(id); E_Space space = rd_eval_space_from_cfg(cfg); result.root = e_irtree_set_space(arena, space, e_irtree_const_u(arena, 0)); @@ -739,7 +739,7 @@ E_TYPE_ACCESS_FUNCTION_DEF(cfgs_slice) case E_ExprKind_MemberAccess: { String8 rhs_name = expr->first->next->string; - RD_CfgID id = 0; + CFG_ID id = 0; if(str8_match(str8_prefix(rhs_name, 1), str8_lit("$"), 0)) { id = u64_from_str8(str8_skip(rhs_name, 1), 16); diff --git a/src/raddbg/raddbg_views.c b/src/raddbg/raddbg_views.c index 1f832c49..68653c29 100644 --- a/src/raddbg/raddbg_views.c +++ b/src/raddbg/raddbg_views.c @@ -1089,7 +1089,7 @@ rd_watch_row_info_from_row(Arena *arena, EV_Row *row) block_type->expand.id_from_num == E_TYPE_EXPAND_ID_FROM_NUM_FUNCTION_NAME(watches) || block_type->expand.id_from_num == E_TYPE_EXPAND_ID_FROM_NUM_FUNCTION_NAME(environment))) { - RD_CfgID id = row->key.child_id; + CFG_ID id = row->key.child_id; info.group_cfg_child = rd_cfg_from_id(id); } }