eliminate backend-specific module parsing from debug engine ctrl thread; just pass that info back via the demon event

This commit is contained in:
Ryan Fleury
2026-06-02 12:11:10 -07:00
parent d98d6b56d9
commit 9cc2afc659
20 changed files with 825 additions and 544 deletions
+13 -14
View File
@@ -8817,16 +8817,15 @@ rd_window_frame(void)
Vec4F32 hover_color = ui_color_from_tags_key_name(box->tags_key, str8_lit("hover"));
// rjf: brighten
if(is_hot)
{
Vec4F32 color = hover_color;
color.w *= 0.05f;
if(!is_hot)
{
color.w *= t;
}
color.w *= 0.015f;
R_Rect2DInst *inst = dr_rect(pad_2f32(box->rect, 1.f), v4f32(0, 0, 0, 0), 0, 0, border_softness*1.f);
inst->colors[Corner_00] = color;
inst->colors[Corner_10] = color;
inst->colors[Corner_01] = color;
inst->colors[Corner_11] = color;
MemoryCopyArray(inst->corner_radii, box_corner_radii);
}
@@ -8834,7 +8833,7 @@ rd_window_frame(void)
if(box->hot_t > 0.01f) DR_ClipScope(intersect_2f32(box->rect, dr_top_clip()))
{
Vec4F32 color = hover_color;
color.w *= 0.02f;
color.w *= 0.025f;
if(!is_hot)
{
color.w *= t;
@@ -8842,7 +8841,7 @@ rd_window_frame(void)
Vec2F32 center = ui_mouse();
Vec2F32 box_dim = dim_2f32(box->rect);
F32 max_dim = Max(box_dim.x, box_dim.y);
F32 radius = box->font_size*12.f;
F32 radius = box->font_size*24.f;
radius = Min(max_dim, radius);
dr_rect(pad_2f32(r2f32(center, center), radius), color, radius, 0, radius/3.f);
}
@@ -9485,7 +9484,7 @@ rd_theme_tree_from_name(Arena *arena, Access *access, String8 theme_name)
}
if(theme_tree == &md_nil_node)
{
String8 path = str8f(scratch.arena, "%S/%Sraddbg/themes/%S", program_data_folder_prefix_from_os(OperatingSystem_CURRENT), get_process_info()->user_program_data_path, theme_name);
String8 path = str8f(scratch.arena, "%S/raddbg/themes/%S", get_process_info()->user_program_config_data_path, theme_name);
U64 endt_us = now_time_us()+100;
if(rd_state->frame_index <= 5)
{
@@ -10537,8 +10536,8 @@ rd_init(CmdLine *cmdln)
}
}
{
String8 user_program_data_path = get_process_info()->user_program_data_path;
String8 user_data_folder = push_str8f(scratch2.arena, "%S/raddbg", user_program_data_path);
String8 user_program_config_data_path = get_process_info()->user_program_config_data_path;
String8 user_data_folder = str8f(scratch2.arena, "%S/raddbg", user_program_config_data_path);
make_directory(user_data_folder);
if(user_path.size == 0)
{
@@ -10546,12 +10545,12 @@ rd_init(CmdLine *cmdln)
}
if(user_path.size == 0)
{
String8 last_user_path = push_str8f(scratch2.arena, "%S/last_user", user_data_folder);
String8 last_user_path = str8f(scratch2.arena, "%S/last_user", user_data_folder);
user_path = data_from_file_path(scratch2.arena, last_user_path);
}
if(user_path.size == 0)
{
user_path = push_str8f(scratch2.arena, "%S/default.raddbg_user", user_data_folder);
user_path = str8f(scratch2.arena, "%S/default.raddbg_user", user_data_folder);
}
}
if(project_path.size == 0)
@@ -13211,7 +13210,7 @@ rd_frame(void)
case RD_CmdKind_RecordUserAsLastOpened:
{
String8 file_path = rd_regs()->file_path;
String8 last_user_path = str8f(scratch.arena, "%S/%Sraddbg/last_user", get_process_info()->user_program_data_path, program_data_folder_prefix_from_os(OperatingSystem_CURRENT));
String8 last_user_path = str8f(scratch.arena, "%S/raddbg/last_user", get_process_info()->user_program_config_data_path);
write_data_to_file_path(last_user_path, file_path);
}break;
@@ -15777,7 +15776,7 @@ rd_frame(void)
String8 name = rd_regs()->string;
if(name.size != 0)
{
String8 themes_folder = str8f(scratch.arena, "%S/%Sraddbg/themes", get_process_info()->user_program_data_path, program_data_folder_prefix_from_os(OperatingSystem_CURRENT));
String8 themes_folder = str8f(scratch.arena, "%S/raddbg/themes", get_process_info()->user_program_config_data_path);
if(make_directory(themes_folder))
{
String8 dst_path = push_str8f(scratch.arena, "%S/%S", themes_folder, name);
+1 -1
View File
@@ -122,7 +122,7 @@ E_TYPE_EXPAND_INFO_FUNCTION_DEF(themes)
//- rjf: gather theme files
{
String8 theme_folder = push_str8f(scratch.arena, "%S/%Sraddbg/themes", get_process_info()->user_program_data_path, program_data_folder_prefix_from_os(OperatingSystem_CURRENT));
String8 theme_folder = push_str8f(scratch.arena, "%S/raddbg/themes", get_process_info()->user_program_config_data_path);
FileIter *it = file_iter_begin(scratch.arena, theme_folder, FileIterFlag_SkipFolders);
for(FileInfo info = {0}; file_iter_next(scratch.arena, it, &info);)
{
+4 -4
View File
@@ -6,9 +6,9 @@
//
// [ ] jeff stepping bug
// [ ] wassim memory bug
// [ ] test concepts -> base
// [ ] switch off spoofs for step-over
// [ ] debugger, d2r, p2r exemplar / determinism testing
// [x] test concepts -> base
// [x] debugger, d2r, p2r exemplar / determinism testing
//
// [ ] symbol server
// [ ] core dump saving/loading
@@ -540,8 +540,8 @@ entry_point(CmdLine *cmd_line)
g_logs_folder = cmd_line_string(cmd_line, str8_lit("logs"));
if(g_logs_folder.size == 0)
{
String8 user_program_data_path = get_process_info()->user_program_data_path;
g_logs_folder = push_str8f(scratch.arena, "%S/%Sraddbg/logs", program_data_folder_prefix_from_os(OperatingSystem_CURRENT), user_program_data_path);
String8 user_program_logs_data_path = get_process_info()->user_program_logs_data_path;
g_logs_folder = push_str8f(scratch.arena, "%S/raddbg/logs", user_program_logs_data_path);
}
make_directory(g_logs_folder);
+1 -1
View File
@@ -1865,7 +1865,7 @@ rd_info_from_watch_row_cell(Arena *arena, EV_Row *row, EV_StringFlags string_fla
String8 file_name = str8_from_rdi_string_idx(rdi, path_node->name_string_idx);
// rjf: push line location
if(file_name.size != 0) UI_TagF("weak")
if(line.file_idx != 0) UI_TagF("weak")
{
String8 loc = str8f(arena, "%S:%i", file_name, line.line_num);
DR_FStrParams params = {rd_font_from_slot(RD_FontSlot_Main), rd_raster_flags_from_slot(RD_FontSlot_Main), ui_color_from_name(str8_lit("text")), font_size*0.85f, 0, 0};