setting for auto-downloading missing debug info (off by default); command for manually loading module debug info as-needed

This commit is contained in:
Ryan Fleury
2026-06-09 14:01:09 -07:00
parent 0105b06fef
commit 5ae286d67e
13 changed files with 103 additions and 18 deletions
File diff suppressed because one or more lines are too long
+2 -1
View File
@@ -98,6 +98,7 @@ RD_CmdKind_FreezeEntity,
RD_CmdKind_ThawEntity,
RD_CmdKind_SetEntityColor,
RD_CmdKind_SetEntityName,
RD_CmdKind_DownloadModuleDebugInfo,
RD_CmdKind_Attach,
RD_CmdKind_OpenCrashDump,
RD_CmdKind_Exit,
@@ -615,7 +616,7 @@ Z(getting_started)\
C_LINKAGE_BEGIN
extern String8 rd_tab_fast_path_view_name_table[25];
extern String8 rd_tab_fast_path_query_name_table[25];
extern RD_VocabInfo rd_vocab_info_table[367];
extern RD_VocabInfo rd_vocab_info_table[368];
extern RD_NameSchemaInfo rd_name_schema_info_table[39];
extern String8 rd_reg_slot_code_name_table[51];
extern Rng1U64 rd_reg_slot_range_table[51];
+4
View File
@@ -316,6 +316,10 @@ RD_VocabTable:
//- rjf: auto-load last project
@default(0) @display_name('Auto Load Last Project') @description("Enables loading the most recently opened project, if one is not specified from the command line.")
'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).")
'auto_download_debug_info': bool,
}
```
}
+4 -2
View File
@@ -11186,6 +11186,8 @@ 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);
ProfScope("apply debug info config trees -> loaded debug info cache")
{
U64 current_update_tick_idx = update_tick_idx();
@@ -17319,7 +17321,7 @@ rd_frame(void)
}
////////////////////////////
//- rjf: gather exception code filters
//- rjf: gather debug engine settings
//
U64 exception_code_filters[(D_ExceptionCodeKind_COUNT+63)/64] = {0};
{
@@ -17344,7 +17346,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);
D_EventList engine_events = d_tick(scratch.arena, &targets, &breakpoints, &path_maps, exception_code_filters, auto_download_debug_info);
////////////////////////////
//- rjf: process debug engine events
+3
View File
@@ -4,6 +4,9 @@
////////////////////////////////
//~ rjf: post-0.9.26 TODO notes
//
// [ ] debug info loading retry mechanism, in cases where the load failed, but settings/filesystem state changes -
// e.g. turn on automatic downloads, already tried to load symbol server cache file that doesn't exist ->
// need to retry
// [ ] wassim memory bug
//
// [ ] symbol server