modules view pass

This commit is contained in:
Ryan Fleury
2024-10-01 10:42:31 -07:00
parent ac5c65ebdd
commit dae0d602f9
3 changed files with 23 additions and 20 deletions
+1 -1
View File
@@ -3969,7 +3969,7 @@ ctrl_thread__next_dmn_event(Arena *arena, DMN_CtrlCtx *ctrl_ctx, CTRL_Msg *msg,
CTRL_Handle process_handle = ctrl_handle_make(CTRL_MachineID_Local, event->process); CTRL_Handle process_handle = ctrl_handle_make(CTRL_MachineID_Local, event->process);
CTRL_Handle module_handle = ctrl_handle_make(CTRL_MachineID_Local, event->module); CTRL_Handle module_handle = ctrl_handle_make(CTRL_MachineID_Local, event->module);
CTRL_Event *out_evt1 = ctrl_event_list_push(scratch.arena, &evts); CTRL_Event *out_evt1 = ctrl_event_list_push(scratch.arena, &evts);
String8 module_path = event->string; String8 module_path = path_normalized_from_string(scratch.arena, event->string);
U64 exe_timestamp = os_properties_from_file_path(module_path).modified; U64 exe_timestamp = os_properties_from_file_path(module_path).modified;
ctrl_thread__module_open(process_handle, module_handle, r1u64(event->address, event->address+event->size), module_path); ctrl_thread__module_open(process_handle, module_handle, r1u64(event->address, event->address+event->size), module_path);
out_evt1->kind = CTRL_EventKind_NewModule; out_evt1->kind = CTRL_EventKind_NewModule;
+3 -2
View File
@@ -1874,7 +1874,7 @@ rd_title_fstrs_from_ctrl_entity(Arena *arena, CTRL_Entity *entity, Vec4F32 secon
dr_fancy_string_list_push_new(arena, &result, rd_font_from_slot(RD_FontSlot_Icons), size, secondary_color, rd_icon_kind_text_table[icon_kind]); dr_fancy_string_list_push_new(arena, &result, rd_font_from_slot(RD_FontSlot_Icons), size, secondary_color, rd_icon_kind_text_table[icon_kind]);
} }
dr_fancy_string_list_push_new(arena, &result, rd_font_from_slot(RD_FontSlot_Code), size, secondary_color, str8_lit(" ")); dr_fancy_string_list_push_new(arena, &result, rd_font_from_slot(RD_FontSlot_Code), size, secondary_color, str8_lit(" "));
if(entity->kind == CTRL_EntityKind_Thread) if(entity->kind == CTRL_EntityKind_Thread || entity->kind == CTRL_EntityKind_Module)
{ {
CTRL_EntityList processes = ctrl_entity_list_from_kind(d_state->ctrl_entity_store, CTRL_EntityKind_Process); CTRL_EntityList processes = ctrl_entity_list_from_kind(d_state->ctrl_entity_store, CTRL_EntityKind_Process);
if(processes.count > 1) if(processes.count > 1)
@@ -1889,8 +1889,9 @@ rd_title_fstrs_from_ctrl_entity(Arena *arena, CTRL_Entity *entity, Vec4F32 secon
} }
} }
} }
B32 name_is_code = (entity->kind == CTRL_EntityKind_Thread);
String8 name = rd_name_from_ctrl_entity(arena, entity); String8 name = rd_name_from_ctrl_entity(arena, entity);
dr_fancy_string_list_push_new(arena, &result, rd_font_from_slot(RD_FontSlot_Code), size, color, name); dr_fancy_string_list_push_new(arena, &result, rd_font_from_slot(name_is_code ? RD_FontSlot_Code : RD_FontSlot_Main), size, color, name);
if(entity->kind == CTRL_EntityKind_Thread && include_extras) if(entity->kind == CTRL_EntityKind_Thread && include_extras)
{ {
F32 ext_size = size*0.95f; F32 ext_size = size*0.95f;
+19 -17
View File
@@ -2173,20 +2173,23 @@ rd_watch_view_build(RD_WatchViewState *ewv, RD_WatchViewFlags flags, String8 roo
E_Eval row_eval = e_eval_from_expr(scratch.arena, row->expr); E_Eval row_eval = e_eval_from_expr(scratch.arena, row->expr);
CTRL_Entity *row_ctrl_entity = rd_ctrl_entity_from_eval_space(row_eval.space); CTRL_Entity *row_ctrl_entity = rd_ctrl_entity_from_eval_space(row_eval.space);
CTRL_Entity *row_module = ctrl_entity_from_handle(d_state->ctrl_entity_store, rd_regs()->module); CTRL_Entity *row_module = ctrl_entity_from_handle(d_state->ctrl_entity_store, rd_regs()->module);
switch(row_ctrl_entity->kind) if(row_eval.space.kind == RD_EvalSpaceKind_CtrlEntity)
{ {
default: switch(row_ctrl_entity->kind)
case CTRL_EntityKind_Process:
if(row_eval.mode == E_Mode_Offset)
{ {
row_module = ctrl_module_from_process_vaddr(row_ctrl_entity, row_eval.value.u64); default:
}break; case CTRL_EntityKind_Process:
case CTRL_EntityKind_Thread: if(row_eval.mode == E_Mode_Offset)
if(row_eval.mode == E_Mode_Value) {
{ row_module = ctrl_module_from_process_vaddr(row_ctrl_entity, row_eval.value.u64);
CTRL_Entity *process = ctrl_process_from_entity(row_ctrl_entity); }break;
row_module = ctrl_module_from_process_vaddr(process, row_eval.value.u64); case CTRL_EntityKind_Thread:
}break; if(row_eval.mode == E_Mode_Value)
{
CTRL_Entity *process = ctrl_process_from_entity(row_ctrl_entity);
row_module = ctrl_module_from_process_vaddr(process, row_eval.value.u64);
}break;
}
} }
E_Type *row_type = e_type_from_key(scratch.arena, row_eval.type_key); E_Type *row_type = e_type_from_key(scratch.arena, row_eval.type_key);
B32 row_is_expandable = ev_row_is_expandable(row); B32 row_is_expandable = ev_row_is_expandable(row);
@@ -5574,12 +5577,11 @@ RD_VIEW_RULE_UI_FUNCTION_DEF(modules)
if(!wv->initialized) if(!wv->initialized)
{ {
rd_watch_view_init(wv); rd_watch_view_init(wv);
rd_watch_view_column_alloc(wv, RD_WatchViewColumnKind_Member, 0.20f, .string = str8_lit("label.str"), .display_string = str8_lit("Name"), .dequote_string = 1, .is_non_code = 1); rd_watch_view_column_alloc(wv, RD_WatchViewColumnKind_Expr, 0.25f);
rd_watch_view_column_alloc(wv, RD_WatchViewColumnKind_Member, 0.30f, .string = str8_lit("exe.str"), .display_string = str8_lit("Executable Path"), .dequote_string = 1, .is_non_code = 1); rd_watch_view_column_alloc(wv, RD_WatchViewColumnKind_Value, 0.75f);
rd_watch_view_column_alloc(wv, RD_WatchViewColumnKind_Member, 0.30f, .string = str8_lit("dbg.str"), .display_string = str8_lit("Debug Info Path"), .dequote_string = 1, .is_non_code = 1);
rd_watch_view_column_alloc(wv, RD_WatchViewColumnKind_Member, 0.20f, .string = str8_lit("vaddr_range"), .display_string = str8_lit("Address Range"), .rangify_braces = 1, .view_rule = str8_lit("hex"));
} }
rd_watch_view_build(wv, 0, str8_lit("modules"), str8_lit(""), 0, 10, rect); rd_watch_view_build(wv, RD_WatchViewFlag_NoHeader|RD_WatchViewFlag_PrettyNameMembers|RD_WatchViewFlag_PrettyEntityRows|RD_WatchViewFlag_DisableCacheLines,
str8_lit("modules"), str8_lit("only: exe dbg str vaddr_range min max"), 0, 16, rect);
ProfEnd(); ProfEnd();
} }