diff --git a/src/dbg_engine/dbg_engine.mdesk b/src/dbg_engine/dbg_engine.mdesk index b72c6486..0afbc3b5 100644 --- a/src/dbg_engine/dbg_engine.mdesk +++ b/src/dbg_engine/dbg_engine.mdesk @@ -127,103 +127,9 @@ D_EntityKindTable: @expand(D_EntityKindTable a) `($(a.op_delete)*D_EntityKindFlag_CanDelete) | ($(a.op_freeze)*D_EntityKindFlag_CanFreeze) | ($(a.op_edit)*D_EntityKindFlag_CanEdit) | ($(a.op_rename)*D_EntityKindFlag_CanRename) | ($(a.op_enable)*D_EntityKindFlag_CanEnable) | ($(a.op_cond)*D_EntityKindFlag_CanCondition) | ($(a.op_dup)*D_EntityKindFlag_CanDuplicate) | ($(a.name_is_code)*D_EntityKindFlag_NameIsCode) | ($(a.name_is_path)*D_EntityKindFlag_NameIsPath) | ($(a.user_lifetime)*D_EntityKindFlag_UserDefinedLifetime) | ($(a.is_serialized)*D_EntityKindFlag_IsSerializedToConfig)`, } -//////////////////////////////// -//~ rjf: Registers Type Table - -@table(c_type name_lower name) -D_RegTable: -{ - // rjf: entity slots - {D_Handle machine Machine } - {D_Handle module Module } - {D_Handle process Process } - {D_Handle thread Thread } - {D_Handle window Window } - {D_Handle panel Panel } - {D_Handle view View } - {D_Handle prev_view PrevView } - {D_Handle dst_panel DstPanel } - {D_Handle entity Entity } - {D_HandleList entity_list EntityList } - - // rjf: frame selection - {U64 unwind_count UnwindCount } - {U64 inline_depth InlineDepth } - - // rjf: code / address location info - {String8 file_path FilePath } - {TxtPt cursor Cursor } - {TxtPt mark Mark } - {U128 text_key TextKey } - {TXT_LangKind lang_kind LangKind } - {D_LineList lines Lines } - {DI_Key dbgi_key DbgiKey } - {Rng1U64 vaddr_range VaddrRange } - {Rng1U64 voff_range VoffRange } - - // rjf: general parameters - {U32 pid PID } - {B32 force_confirm ForceConfirm } - {B32 prefer_disasm PreferDisasm } - {Dir2 dir2 Dir2 } - {String8 string String } - {`MD_Node *` params_tree ParamsTree } -} - -@enum D_RegSlot: -{ - Null, - @expand(D_RegTable a) `$(a.name)`, - COUNT, -} - -@struct D_Regs: -{ - @expand(D_RegTable a) `$(a.c_type) $(a.name_lower)` -} - -@data(Rng1U64) d_reg_slot_range_table: -{ - `{0}`, - @expand(D_RegTable a) `{OffsetOf(D_Regs, $(a.name_lower)), OffsetOf(D_Regs, $(a.name_lower)) + sizeof($(a.c_type))}` -} - -@gen -{ - `#define d_regs_lit_init_top \\` - @expand(D_RegTable a) `.$(a.name_lower) = d_regs()->$(a.name_lower),\\` - ``; -} - //////////////////////////////// //~ rjf: Built-In Command Tables -@table(name, name_lower, c_type) -D_CmdParamSlotTable: -{ - {Window window `D_Handle`} - {Panel panel `D_Handle`} - {DestPanel dest_panel `D_Handle`} - {PrevView prev_view `D_Handle`} - {View view `D_Handle`} - {Entity entity `D_Handle`} - {EntityList entity_list `D_HandleList`} - {String string `String8`} - {FilePath file_path `String8`} - {TextPoint text_point `TxtPt`} - {ParamsTree params_tree `MD_Node *`} - {OSEvent os_event `struct OS_Event *`} - {VirtualAddr vaddr `U64`} - {VirtualOff voff `U64`} - {Index index `U64`} - {ID id `U64`} - {PreferDisassembly prefer_dasm `B32`} - {ForceConfirm force_confirm `B32`} - {Dir2 dir2 `Dir2`} - {UnwindIndex unwind_index `U64`} - {InlineDepth inline_depth `U64`} -} - @table(name ui_vis ipc_docs_vis q_slot q_view q_ent_kind q_allow_files q_allow_folders q_keep_oi q_select_oi q_is_code q_required canonical_icon string display_name desc search_tags ) // / | | | \___ ____________________________________/ | | | | | // / | | | \ / | | | | | @@ -276,26 +182,6 @@ D_CmdTable: // | | | | COUNT, } -/* -@enum D_CmdParamSlot: -{ - Null, - @expand(D_CmdParamSlotTable a) `$(a.name)`, - COUNT, -} - -@struct D_CmdParams: -{ - @expand(D_CmdParamSlotTable a) `$(a.c_type) $(a.name_lower)`; -} - -@data(Rng1U64) d_cmd_param_slot_range_table: -{ - `{0}`, - @expand(D_CmdParamSlotTable a) `{OffsetOf(D_CmdParams, $(a.name_lower)), OffsetOf(D_CmdParams, $(a.name_lower)) + sizeof($(a.c_type))}`, -} -*/ - //////////////////////////////// //~ rjf: Built-In View Rules // diff --git a/src/dbg_engine/dbg_engine_core.c b/src/dbg_engine/dbg_engine_core.c index 7b1dbd8c..006256c8 100644 --- a/src/dbg_engine/dbg_engine_core.c +++ b/src/dbg_engine/dbg_engine_core.c @@ -88,33 +88,6 @@ d_handle_list_copy(Arena *arena, D_HandleList list) return result; } -//////////////////////////////// -//~ rjf: Registers Type Pure Functions - -internal void -d_regs_copy_contents(Arena *arena, D_Regs *dst, D_Regs *src) -{ - MemoryCopyStruct(dst, src); - dst->entity_list = d_handle_list_copy(arena, src->entity_list); - dst->file_path = push_str8_copy(arena, src->file_path); - dst->lines = d_line_list_copy(arena, &src->lines); - dst->dbgi_key = di_key_copy(arena, &src->dbgi_key); - dst->string = push_str8_copy(arena, src->string); - dst->params_tree = md_tree_copy(arena, src->params_tree); - if(dst->entity_list.count == 0 && !d_handle_match(d_handle_zero(), dst->entity)) - { - d_handle_list_push(arena, &dst->entity_list, dst->entity); - } -} - -internal D_Regs * -d_regs_copy(Arena *arena, D_Regs *src) -{ - D_Regs *dst = push_array(arena, D_Regs, 1); - d_regs_copy_contents(arena, dst, src); - return dst; -} - //////////////////////////////// //~ rjf: Config Type Functions @@ -735,16 +708,16 @@ d_search_tags_from_entity(Arena *arena, D_Entity *entity) { Temp scratch = scratch_begin(&arena, 1); CTRL_Entity *entity_ctrl = ctrl_entity_from_handle(d_state->ctrl_entity_store, entity->ctrl_handle); - D_Entity *process = d_entity_ancestor_from_kind(entity, D_EntityKind_Process); + CTRL_Entity *process = ctrl_entity_ancestor_from_kind(entity_ctrl, D_EntityKind_Process); CTRL_Unwind unwind = d_query_cached_unwind_from_thread(entity_ctrl); String8List strings = {0}; for(U64 frame_num = unwind.frames.count; frame_num > 0; frame_num -= 1) { CTRL_UnwindFrame *f = &unwind.frames.v[frame_num-1]; U64 rip_vaddr = regs_rip_from_arch_block(entity->arch, f->regs); - D_Entity *module = d_module_from_process_vaddr(process, rip_vaddr); - U64 rip_voff = d_voff_from_vaddr(module, rip_vaddr); - DI_Key dbgi_key = d_dbgi_key_from_module(module); + CTRL_Entity *module = ctrl_module_from_process_vaddr(process, rip_vaddr); + U64 rip_voff = ctrl_voff_from_vaddr(module, rip_vaddr); + DI_Key dbgi_key = ctrl_dbgi_key_from_module(module); String8 procedure_name = d_symbol_name_from_dbgi_key_voff(scratch.arena, &dbgi_key, rip_voff, 0); if(procedure_name.size != 0) { @@ -2469,6 +2442,7 @@ d_lines_from_file_path_line_num(Arena *arena, String8 file_path, S64 line_num) //////////////////////////////// //~ rjf: Process/Thread/Module Info Lookups +#if 0 // TODO(rjf): @msgs internal D_Entity * d_module_from_process_vaddr(D_Entity *process, U64 vaddr) { @@ -2484,7 +2458,6 @@ d_module_from_process_vaddr(D_Entity *process, U64 vaddr) return module; } -#if 0 // TODO(rjf): @msgs internal D_Entity * d_module_from_thread(D_Entity *thread) { @@ -2577,11 +2550,13 @@ d_tls_base_vaddr_from_process_root_rip(CTRL_Entity *process, U64 root_vaddr, U64 return base_vaddr; } +#if 0 // TODO(rjf): @msgs internal Arch d_arch_from_entity(D_Entity *entity) { return entity->arch; } +#endif internal E_String2NumMap * d_push_locals_map_from_dbgi_key_voff(Arena *arena, DI_Scope *scope, DI_Key *dbgi_key, U64 voff) @@ -3217,44 +3192,6 @@ d_frame_arena(void) return d_state->frame_arenas[d_state->frame_index%ArrayCount(d_state->frame_arenas)]; } -//- rjf: interaction registers - -internal D_Regs * -d_regs(void) -{ - D_Regs *regs = &d_state->top_regs->v; - return regs; -} - -internal D_Regs * -d_base_regs(void) -{ - D_Regs *regs = &d_state->base_regs.v; - return regs; -} - -internal D_Regs * -d_push_regs(void) -{ - D_Regs *top = d_regs(); - D_RegsNode *n = push_array(d_frame_arena(), D_RegsNode, 1); - MemoryCopyStruct(&n->v, top); - SLLStackPush(d_state->top_regs, n); - return &n->v; -} - -internal D_Regs * -d_pop_regs(void) -{ - D_Regs *regs = &d_state->top_regs->v; - SLLStackPop(d_state->top_regs); - if(d_state->top_regs == 0) - { - d_state->top_regs = &d_state->base_regs; - } - return regs; -} - //- rjf: control state internal D_RunKind @@ -3883,7 +3820,6 @@ d_init(void) d_state->entities_root = d_entity_alloc(&d_nil_entity, D_EntityKind_Root); d_state->view_rule_spec_table_size = 1024; d_state->view_rule_spec_table = push_array(arena, D_ViewRuleSpec *, d_state->view_rule_spec_table_size); - d_state->top_regs = &d_state->base_regs; d_state->ctrl_msg_arena = arena_alloc(); // rjf: set up initial exception filtering rules @@ -3937,8 +3873,6 @@ d_tick(Arena *arena, D_TargetArray *targets, D_BreakpointArray *breakpoints) d_state->frame_index += 1; arena_clear(d_frame_arena()); d_state->frame_eval_memread_endt_us = os_now_microseconds() + 5000; - d_state->top_regs = &d_state->base_regs; - d_regs_copy_contents(d_frame_arena(), &d_state->top_regs->v, &d_state->top_regs->v); B32 ctrl_running_pre_tick = d_state->ctrl_is_running; ////////////////////////////// @@ -5049,10 +4983,6 @@ d_tick(Arena *arena, D_TargetArray *targets, D_BreakpointArray *breakpoints) d_state->ctrl_last_run_flags = run_flags; d_state->ctrl_last_run_traps = ctrl_trap_list_copy(d_state->ctrl_last_run_arena, &run_traps_copy); d_state->ctrl_is_running = 1; - - // rjf: reset selected frame to top unwind - d_state->base_regs.v.unwind_count = 0; - d_state->base_regs.v.inline_depth = 0; } } } diff --git a/src/dbg_engine/dbg_engine_core.h b/src/dbg_engine/dbg_engine_core.h index 58d7e2b1..9de0d9fb 100644 --- a/src/dbg_engine/dbg_engine_core.h +++ b/src/dbg_engine/dbg_engine_core.h @@ -445,16 +445,6 @@ struct D_Unwind D_UnwindFrameArray frames; }; -//////////////////////////////// -//~ rjf: Context Register Types - -typedef struct D_RegsNode D_RegsNode; -struct D_RegsNode -{ - D_RegsNode *next; - D_Regs v; -}; - //////////////////////////////// //~ rjf: Command Specification Types @@ -709,10 +699,6 @@ struct D_State // rjf: frame info Arena *frame_arenas[2]; - // rjf: interaction registers - D_RegsNode base_regs; - D_RegsNode *top_regs; - // rjf: commands Arena *cmds_arena; D_CmdList cmds; @@ -808,12 +794,6 @@ internal void d_handle_list_push_node(D_HandleList *list, D_HandleNode *node); internal void d_handle_list_push(Arena *arena, D_HandleList *list, D_Handle handle); internal D_HandleList d_handle_list_copy(Arena *arena, D_HandleList list); -//////////////////////////////// -//~ rjf: Registers Type Pure Functions - -internal void d_regs_copy_contents(Arena *arena, D_Regs *dst, D_Regs *src); -internal D_Regs *d_regs_copy(Arena *arena, D_Regs *src); - //////////////////////////////// //~ rjf: Config Type Pure Functions @@ -1004,12 +984,14 @@ internal D_LineList d_lines_from_file_path_line_num(Arena *arena, String8 file_p //////////////////////////////// //~ rjf: Process/Thread/Module Info Lookups -internal D_Entity *d_module_from_process_vaddr(D_Entity *process, U64 vaddr); #if 0 // TODO(rjf): @msgs +internal D_Entity *d_module_from_process_vaddr(D_Entity *process, U64 vaddr); internal D_Entity *d_module_from_thread(D_Entity *thread); #endif -internal U64 d_tls_base_vaddr_from_process_root_rip(CTRL_Entity *process, U64 root_vaddr, U64 rip_vaddr); -internal Arch d_arch_from_entity(D_Entity *entity); +internal U64 d_tls_base_vaddr_from_process_root_rip(CTRL_Entity *process, U64 root_vaddr, U64 rip_vaddr); +#if 0 // TODO(rjf): @msgs +internal Arch d_arch_from_entity(D_Entity *entity); +#endif internal E_String2NumMap *d_push_locals_map_from_dbgi_key_voff(Arena *arena, DI_Scope *scope, DI_Key *dbgi_key, U64 voff); internal E_String2NumMap *d_push_member_map_from_dbgi_key_voff(Arena *arena, DI_Scope *scope, DI_Key *dbgi_key, U64 voff); #if 0 // TODO(rjf): @msgs @@ -1074,13 +1056,6 @@ internal String8 d_eval_string_from_file_path(Arena *arena, String8 string); internal U64 d_frame_index(void); internal Arena *d_frame_arena(void); -//- rjf: registers -internal D_Regs *d_regs(void); -internal D_Regs *d_base_regs(void); -internal D_Regs *d_push_regs(void); -internal D_Regs *d_pop_regs(void); -#define D_RegsScope DeferLoop(d_push_regs(), d_pop_regs()) - //- rjf: control state internal D_RunKind d_ctrl_last_run_kind(void); internal U64 d_ctrl_last_run_frame_idx(void); diff --git a/src/dbg_engine/generated/dbg_engine.meta.c b/src/dbg_engine/generated/dbg_engine.meta.c index c44022e6..91f86637 100644 --- a/src/dbg_engine/generated/dbg_engine.meta.c +++ b/src/dbg_engine/generated/dbg_engine.meta.c @@ -182,39 +182,6 @@ D_EntityKindFlags d_entity_kind_flags_table[30] = (0*D_EntityKindFlag_CanDelete) | (0*D_EntityKindFlag_CanFreeze) | (0*D_EntityKindFlag_CanEdit) | (1*D_EntityKindFlag_CanRename) | (0*D_EntityKindFlag_CanEnable) | (0*D_EntityKindFlag_CanCondition) | (0*D_EntityKindFlag_CanDuplicate) | (0*D_EntityKindFlag_NameIsCode) | (0*D_EntityKindFlag_NameIsPath) | (0*D_EntityKindFlag_UserDefinedLifetime) | (0*D_EntityKindFlag_IsSerializedToConfig), }; -Rng1U64 d_reg_slot_range_table[29] = -{ -{0}, -{OffsetOf(D_Regs, machine), OffsetOf(D_Regs, machine) + sizeof(D_Handle)}, -{OffsetOf(D_Regs, module), OffsetOf(D_Regs, module) + sizeof(D_Handle)}, -{OffsetOf(D_Regs, process), OffsetOf(D_Regs, process) + sizeof(D_Handle)}, -{OffsetOf(D_Regs, thread), OffsetOf(D_Regs, thread) + sizeof(D_Handle)}, -{OffsetOf(D_Regs, window), OffsetOf(D_Regs, window) + sizeof(D_Handle)}, -{OffsetOf(D_Regs, panel), OffsetOf(D_Regs, panel) + sizeof(D_Handle)}, -{OffsetOf(D_Regs, view), OffsetOf(D_Regs, view) + sizeof(D_Handle)}, -{OffsetOf(D_Regs, prev_view), OffsetOf(D_Regs, prev_view) + sizeof(D_Handle)}, -{OffsetOf(D_Regs, dst_panel), OffsetOf(D_Regs, dst_panel) + sizeof(D_Handle)}, -{OffsetOf(D_Regs, entity), OffsetOf(D_Regs, entity) + sizeof(D_Handle)}, -{OffsetOf(D_Regs, entity_list), OffsetOf(D_Regs, entity_list) + sizeof(D_HandleList)}, -{OffsetOf(D_Regs, unwind_count), OffsetOf(D_Regs, unwind_count) + sizeof(U64)}, -{OffsetOf(D_Regs, inline_depth), OffsetOf(D_Regs, inline_depth) + sizeof(U64)}, -{OffsetOf(D_Regs, file_path), OffsetOf(D_Regs, file_path) + sizeof(String8)}, -{OffsetOf(D_Regs, cursor), OffsetOf(D_Regs, cursor) + sizeof(TxtPt)}, -{OffsetOf(D_Regs, mark), OffsetOf(D_Regs, mark) + sizeof(TxtPt)}, -{OffsetOf(D_Regs, text_key), OffsetOf(D_Regs, text_key) + sizeof(U128)}, -{OffsetOf(D_Regs, lang_kind), OffsetOf(D_Regs, lang_kind) + sizeof(TXT_LangKind)}, -{OffsetOf(D_Regs, lines), OffsetOf(D_Regs, lines) + sizeof(D_LineList)}, -{OffsetOf(D_Regs, dbgi_key), OffsetOf(D_Regs, dbgi_key) + sizeof(DI_Key)}, -{OffsetOf(D_Regs, vaddr_range), OffsetOf(D_Regs, vaddr_range) + sizeof(Rng1U64)}, -{OffsetOf(D_Regs, voff_range), OffsetOf(D_Regs, voff_range) + sizeof(Rng1U64)}, -{OffsetOf(D_Regs, pid), OffsetOf(D_Regs, pid) + sizeof(U32)}, -{OffsetOf(D_Regs, force_confirm), OffsetOf(D_Regs, force_confirm) + sizeof(B32)}, -{OffsetOf(D_Regs, prefer_disasm), OffsetOf(D_Regs, prefer_disasm) + sizeof(B32)}, -{OffsetOf(D_Regs, dir2), OffsetOf(D_Regs, dir2) + sizeof(Dir2)}, -{OffsetOf(D_Regs, string), OffsetOf(D_Regs, string) + sizeof(String8)}, -{OffsetOf(D_Regs, params_tree), OffsetOf(D_Regs, params_tree) + sizeof(MD_Node *)}, -}; - D_ViewRuleSpecInfo d_core_view_rule_spec_info_table[21] = { {str8_lit_comp("default"), str8_lit_comp("Default"), str8_lit_comp(""), str8_lit_comp(""), (D_ViewRuleSpecInfoFlag_Inherited*0)|(D_ViewRuleSpecInfoFlag_Expandable*0)|(D_ViewRuleSpecInfoFlag_ExprResolution*0)|(D_ViewRuleSpecInfoFlag_VizBlockProd*1), }, diff --git a/src/dbg_engine/generated/dbg_engine.meta.h b/src/dbg_engine/generated/dbg_engine.meta.h index 1862c4e5..a8eea7c8 100644 --- a/src/dbg_engine/generated/dbg_engine.meta.h +++ b/src/dbg_engine/generated/dbg_engine.meta.h @@ -50,40 +50,6 @@ D_EntityKind_ConversionFail, D_EntityKind_COUNT, } D_EntityKind; -typedef enum D_RegSlot -{ -D_RegSlot_Null, -D_RegSlot_Machine, -D_RegSlot_Module, -D_RegSlot_Process, -D_RegSlot_Thread, -D_RegSlot_Window, -D_RegSlot_Panel, -D_RegSlot_View, -D_RegSlot_PrevView, -D_RegSlot_DstPanel, -D_RegSlot_Entity, -D_RegSlot_EntityList, -D_RegSlot_UnwindCount, -D_RegSlot_InlineDepth, -D_RegSlot_FilePath, -D_RegSlot_Cursor, -D_RegSlot_Mark, -D_RegSlot_TextKey, -D_RegSlot_LangKind, -D_RegSlot_Lines, -D_RegSlot_DbgiKey, -D_RegSlot_VaddrRange, -D_RegSlot_VoffRange, -D_RegSlot_PID, -D_RegSlot_ForceConfirm, -D_RegSlot_PreferDisasm, -D_RegSlot_Dir2, -D_RegSlot_String, -D_RegSlot_ParamsTree, -D_RegSlot_COUNT, -} D_RegSlot; - typedef enum D_CmdKind { D_CmdKind_Null, @@ -147,69 +113,6 @@ D_ViewRuleKind_Geo3D, D_ViewRuleKind_COUNT, } D_ViewRuleKind; -typedef struct D_Regs D_Regs; -struct D_Regs -{ -D_Handle machine; -D_Handle module; -D_Handle process; -D_Handle thread; -D_Handle window; -D_Handle panel; -D_Handle view; -D_Handle prev_view; -D_Handle dst_panel; -D_Handle entity; -D_HandleList entity_list; -U64 unwind_count; -U64 inline_depth; -String8 file_path; -TxtPt cursor; -TxtPt mark; -U128 text_key; -TXT_LangKind lang_kind; -D_LineList lines; -DI_Key dbgi_key; -Rng1U64 vaddr_range; -Rng1U64 voff_range; -U32 pid; -B32 force_confirm; -B32 prefer_disasm; -Dir2 dir2; -String8 string; -MD_Node * params_tree; -}; - -#define d_regs_lit_init_top \ -.machine = d_regs()->machine,\ -.module = d_regs()->module,\ -.process = d_regs()->process,\ -.thread = d_regs()->thread,\ -.window = d_regs()->window,\ -.panel = d_regs()->panel,\ -.view = d_regs()->view,\ -.prev_view = d_regs()->prev_view,\ -.dst_panel = d_regs()->dst_panel,\ -.entity = d_regs()->entity,\ -.entity_list = d_regs()->entity_list,\ -.unwind_count = d_regs()->unwind_count,\ -.inline_depth = d_regs()->inline_depth,\ -.file_path = d_regs()->file_path,\ -.cursor = d_regs()->cursor,\ -.mark = d_regs()->mark,\ -.text_key = d_regs()->text_key,\ -.lang_kind = d_regs()->lang_kind,\ -.lines = d_regs()->lines,\ -.dbgi_key = d_regs()->dbgi_key,\ -.vaddr_range = d_regs()->vaddr_range,\ -.voff_range = d_regs()->voff_range,\ -.pid = d_regs()->pid,\ -.force_confirm = d_regs()->force_confirm,\ -.prefer_disasm = d_regs()->prefer_disasm,\ -.dir2 = d_regs()->dir2,\ -.string = d_regs()->string,\ -.params_tree = d_regs()->params_tree,\ - global B32 DEV_telemetry_capture = 0; global B32 DEV_simulate_lag = 0; global B32 DEV_draw_ui_text_pos = 0; @@ -240,7 +143,6 @@ extern String8 d_entity_kind_name_lower_table[30]; extern String8 d_entity_kind_name_lower_plural_table[30]; extern String8 d_entity_kind_name_label_table[30]; extern D_EntityKindFlags d_entity_kind_flags_table[30]; -extern Rng1U64 d_reg_slot_range_table[29]; C_LINKAGE_END diff --git a/src/dbg_frontend/dbg_frontend_core.c b/src/dbg_frontend/dbg_frontend_core.c index ccf5451b..0e313ee8 100644 --- a/src/dbg_frontend/dbg_frontend_core.c +++ b/src/dbg_frontend/dbg_frontend_core.c @@ -1014,9 +1014,8 @@ df_window_open(Vec2F32 size, OS_Handle preferred_monitor, D_CfgSrc cfg_src) { os_window_set_monitor(window->os, preferred_monitor); } - if(df_state->first_window == 0) D_RegsScope + if(df_state->first_window == 0) DF_RegsScope(.window = df_handle_from_window(window)) { - df_regs()->window = df_handle_from_window(window); DF_FontSlot english_font_slots[] = {DF_FontSlot_Main, DF_FontSlot_Code}; DF_FontSlot icon_font_slot = DF_FontSlot_Icons; for(U64 idx = 0; idx < ArrayCount(english_font_slots); idx += 1) @@ -11676,7 +11675,7 @@ df_frame(void) df_state->base_regs.v.inline_depth = 0; if(df_regs()->inline_depth <= frame->inline_frame_count) { - d_state->base_regs.v.inline_depth = df_regs()->inline_depth; + df_state->base_regs.v.inline_depth = df_regs()->inline_depth; } } df_cmd(DF_CmdKind_FindThread, .thread = thread->handle); @@ -11690,8 +11689,8 @@ df_frame(void) CTRL_Entity *process = ctrl_entity_ancestor_from_kind(thread, CTRL_EntityKind_Process); CTRL_Unwind base_unwind = d_query_cached_unwind_from_thread(thread); D_Unwind rich_unwind = d_unwind_from_ctrl_unwind(scratch.arena, di_scope, process, &base_unwind); - U64 crnt_unwind_idx = d_state->base_regs.v.unwind_count; - U64 crnt_inline_dpt = d_state->base_regs.v.inline_depth; + U64 crnt_unwind_idx = df_state->base_regs.v.unwind_count; + U64 crnt_inline_dpt = df_state->base_regs.v.inline_depth; U64 next_unwind_idx = crnt_unwind_idx; U64 next_inline_dpt = crnt_inline_dpt; if(crnt_unwind_idx < rich_unwind.frames.concrete_frame_count) diff --git a/src/dbg_frontend/dbg_frontend_views.c b/src/dbg_frontend/dbg_frontend_views.c index 7adb580d..428ef3ff 100644 --- a/src/dbg_frontend/dbg_frontend_views.c +++ b/src/dbg_frontend/dbg_frontend_views.c @@ -5710,11 +5710,11 @@ DF_VIEW_UI_FUNCTION_DEF(scheduler) UI_TableCellSized(ui_children_sum(1.f)) UI_FocusHot((row_is_selected && cursor.x >= 2) ? UI_FocusKind_On : UI_FocusKind_Off) { CTRL_Entity *entity_ctrl = ctrl_entity_from_handle(d_state->ctrl_entity_store, entity->ctrl_handle); - D_Entity *process = d_entity_ancestor_from_kind(entity, D_EntityKind_Process); + CTRL_Entity *process = ctrl_entity_ancestor_from_kind(entity_ctrl, D_EntityKind_Process); U64 rip_vaddr = d_query_cached_rip_from_thread(entity_ctrl); - D_Entity *module = d_module_from_process_vaddr(process, rip_vaddr); - U64 rip_voff = d_voff_from_vaddr(module, rip_vaddr); - DI_Key dbgi_key = d_dbgi_key_from_module(module); + CTRL_Entity *module = ctrl_module_from_process_vaddr(process, rip_vaddr); + U64 rip_voff = ctrl_voff_from_vaddr(module, rip_vaddr); + DI_Key dbgi_key = ctrl_dbgi_key_from_module(module); D_LineList lines = d_lines_from_dbgi_key_voff(scratch.arena, &dbgi_key, rip_voff); if(lines.first != 0) {