begin sketching out meta eval info, to allow for debugger meta evaluations on both ctrl thread & on ui thread - e.g. breakpoint hit count evaluation in conditional bps

This commit is contained in:
Ryan Fleury
2024-09-16 10:36:22 -07:00
parent 17d062934e
commit adc9e0e512
8 changed files with 93 additions and 19 deletions
+2 -2
View File
@@ -568,8 +568,8 @@ RD_StringBindingPair rd_default_binding_table[110] =
{str8_lit_comp("goto_name_at_cursor"), {OS_Key_F12, 0 }},
{str8_lit_comp("toggle_watch_expr_at_cursor"), {OS_Key_W, 0 |OS_EventFlag_Alt}},
{str8_lit_comp("toggle_watch_expr_at_mouse"), {OS_Key_D, 0 |OS_EventFlag_Ctrl }},
{str8_lit_comp("toggle_watch_pin_at_cursor"), {OS_Key_F9, 0 |OS_EventFlag_Ctrl }},
{str8_lit_comp("toggle_breakpoint_cursor"), {OS_Key_F9, 0 }},
{str8_lit_comp("toggle_watch_pin"), {OS_Key_F9, 0 |OS_EventFlag_Ctrl }},
{str8_lit_comp("toggle_breakpoint"), {OS_Key_F9, 0 }},
{str8_lit_comp("add_target"), {OS_Key_T, 0 |OS_EventFlag_Ctrl }},
{str8_lit_comp("attach"), {OS_Key_F6, 0 |OS_EventFlag_Shift }},
{str8_lit_comp("filter"), {OS_Key_Slash, 0 |OS_EventFlag_Ctrl }},
+2 -2
View File
@@ -680,10 +680,10 @@ RD_DefaultBindingTable:
//- rjf: watch expressions
{ "toggle_watch_expr_at_cursor" W 0 0 alt }
{ "toggle_watch_expr_at_mouse" D ctrl 0 0 }
{ "toggle_watch_pin_at_cursor" F9 ctrl 0 0 }
{ "toggle_watch_pin" F9 ctrl 0 0 }
//- rjf: breakpoints
{ "toggle_breakpoint_cursor" F9 0 0 0 }
{ "toggle_breakpoint" F9 0 0 0 }
//- rjf: targets
{ "add_target" T ctrl 0 0 }
+11 -3
View File
@@ -1744,11 +1744,11 @@ rd_eval_space_read(void *u, E_Space space, void *out, Rng1U64 range)
}
hs_scope_close(scope);
}break;
case RD_EvalSpaceKind_CtrlEntity:
case CTRL_EvalSpaceKind_Entity:
{
}break;
case RD_EvalSpaceKind_CfgEntity:
case CTRL_EvalSpaceKind_Meta:
{
}break;
@@ -14100,11 +14100,19 @@ rd_frame(void)
// TODO(rjf): @msgs
}
////////////////////////////
//- rjf: gather meta eval infos
//
CTRL_MetaEvalInfoArray meta_eval_infos = {0};
{
// TODO(rjf): @msgs
}
////////////////////////////
//- rjf: tick debug engine
//
U64 cmd_count_pre_tick = rd_state->cmds[0].count;
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, &meta_eval_infos);
////////////////////////////
//- rjf: no selected thread? -> try to snap to any existing thread
-10
View File
@@ -85,16 +85,6 @@ enum
RD_EntityFlag_MarkedForDeletion = (1<<31),
};
////////////////////////////////
//~ rjf: Evaluation Spaces
typedef U64 RD_EvalSpaceKind;
enum
{
RD_EvalSpaceKind_CtrlEntity = E_SpaceKind_FirstUserDefined,
RD_EvalSpaceKind_CfgEntity,
};
////////////////////////////////
//~ rjf: Binding Types