fix nil text visualizations; fix auto-load-recent-project

This commit is contained in:
Ryan Fleury
2026-06-09 14:56:34 -07:00
parent 5ae286d67e
commit fde13f52d3
7 changed files with 26 additions and 11 deletions
+1 -1
View File
@@ -5,7 +5,7 @@ target:
{
executable: "build/raddbg.exe"
working_directory: "../raddebugger"
arguments: "--user:C:/devel/raddebugger/build/raddbg_test.user --project:C:/devel/raddebugger/build/raddbg_test.project"
arguments: "--user:C:/devel/raddebugger/build/raddbg_test.user"
debug_subprocesses: 0
enabled: 1
}
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -318,7 +318,7 @@ RD_VocabTable:
'auto_load_last_project': bool,
//- rjf: symbol server
@default(0) @display_name('Auto Download Debug Info') @Description("Automatically tries to download missing debug info from symbol server(s).")
@default(0) @display_name('Auto Download Debug Info') @description("Automatically tries to download missing debug info from symbol server(s).")
'auto_download_debug_info': bool,
}
```
+8 -7
View File
@@ -331,6 +331,7 @@ rd_setting_from_name(String8 name)
CfgSeedTask panel_task = {0, &cfg_nil_node, 1};
if(panel_task.cfg == &cfg_nil_node) { panel_task.cfg = cfg_node_from_id(rd_regs()->panel); }
if(panel_task.cfg == &cfg_nil_node) { panel_task.cfg = cfg_node_from_id(rd_regs()->window); }
if(panel_task.cfg == &cfg_nil_node) { panel_task.cfg = cfg_node_child_from_string(cfg_node_root(), s("user")); }
CfgSeedTask view_task = {&panel_task, view_cfg, 1};
CfgSeedTask *first_task = &view_task;
CfgSeedTask *last_task = &panel_task;
@@ -11186,8 +11187,7 @@ rd_frame(void)
//////////////////////////////
//- rjf: apply debug info config trees -> loaded debug info cache
//
B32 auto_download_debug_info = rd_setting_b32_from_name(s("auto_download_debug_info"));
di_set_auto_downloads(auto_download_debug_info);
di_set_auto_downloads(rd_state->auto_download_debug_info);
ProfScope("apply debug info config trees -> loaded debug info cache")
{
U64 current_update_tick_idx = update_tick_idx();
@@ -12757,11 +12757,12 @@ rd_frame(void)
//- rjf: evaluate unpacked settings (must be used earlier than this point in the frame,
// but cannot evaluate before this point, so we need to prep for next frame
//
rd_state->alt_menu_bar_enabled = rd_setting_b32_from_name(str8_lit("focus_menu_bar_with_alt"));
rd_state->use_default_stl_type_views = rd_setting_b32_from_name(str8_lit("use_default_stl_type_views"));
rd_state->use_default_ue_type_views = rd_setting_b32_from_name(str8_lit("use_default_ue_type_views"));
rd_state->alt_menu_bar_enabled = rd_setting_b32_from_name(s("focus_menu_bar_with_alt"));
rd_state->use_default_stl_type_views = rd_setting_b32_from_name(s("use_default_stl_type_views"));
rd_state->use_default_ue_type_views = rd_setting_b32_from_name(s("use_default_ue_type_views"));
rd_state->auto_download_debug_info = rd_setting_b32_from_name(s("auto_download_debug_info"));
rd_state->eval_viz_base_string_flags = 0;
if(rd_setting_b32_from_name(str8_lit("display_pointer_addresses_before_contents")))
if(rd_setting_b32_from_name(s("display_pointer_addresses_before_contents")))
{
rd_state->eval_viz_base_string_flags |= EV_StringFlag_AddressesBeforeContent;
}
@@ -17346,7 +17347,7 @@ rd_frame(void)
}
U64 cmd_count_pre_tick = rd_state->cmds[0].count;
B32 soft_halt_issued = d_user_state->ctrl_soft_halt_issued;
D_EventList engine_events = d_tick(scratch.arena, &targets, &breakpoints, &path_maps, exception_code_filters, auto_download_debug_info);
D_EventList engine_events = d_tick(scratch.arena, &targets, &breakpoints, &path_maps, exception_code_filters, rd_state->auto_download_debug_info);
////////////////////////////
//- rjf: process debug engine events
+1
View File
@@ -414,6 +414,7 @@ struct RD_State
B32 alt_menu_bar_enabled;
B32 use_default_stl_type_views;
B32 use_default_ue_type_views;
B32 auto_download_debug_info;
EV_StringFlags eval_viz_base_string_flags;
// rjf: animation rates
+6 -1
View File
@@ -3002,13 +3002,18 @@ txt_text_info_from_hash_lang(Access *access, U128 hash, TXT_LangKind lang)
} key = {hash, lang};
#pragma pack(pop)
String8 key_string = str8_struct(&key);
AC_Artifact artifact = ac_artifact_from_key(access, key_string, txt_artifact_create, txt_artifact_destroy, 0, .flags = AC_Flag_Wide);
B32 stale = 0;
AC_Artifact artifact = ac_artifact_from_key(access, key_string, txt_artifact_create, txt_artifact_destroy, 0, .flags = AC_Flag_Wide, .stale_out = &stale);
TXT_Artifact *txt_artifact = (TXT_Artifact *)artifact.u64[0];
TXT_TextInfo info = {0};
if(txt_artifact != 0)
{
info = txt_artifact->info;
}
else if(!stale)
{
info = txt_info_nil;
}
return info;
}
+8
View File
@@ -177,6 +177,14 @@ typedef TXT_TokenArray TXT_LangLexFunctionType(Arena *arena, U64 *bytes_processe
//~ rjf: Globals
read_only global TXT_ScopeNode txt_scope_node_nil = {0};
read_only global Rng1U64 txt_info_line_range_nil = {0};
read_only global TXT_TextInfo txt_info_nil =
{
1,
&txt_info_line_range_nil,
0,
TXT_LineEndKind_Null,
};
////////////////////////////////
//~ rjf: Basic Helpers