Skip to content

Commit 12784d9

Browse files
committed
partial transition to new flexible watch table structure; more work on 'set' types; checkpoint before replacement of old view-rule-hacks with proper-eval-system support for sets/collections/etc.
1 parent 92e6870 commit 12784d9

File tree

10 files changed

+289
-470
lines changed

10 files changed

+289
-470
lines changed

src/eval_visualization/eval_visualization_builtin_view_rules.c

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,7 @@ struct EV_DefaultExpandAccel
104104
{
105105
E_MemberArray members;
106106
E_EnumValArray enum_vals;
107+
void *lookup_accel;
107108
U64 array_count;
108109
B32 array_need_extra_deref;
109110
B32 is_ptr2ptr;
@@ -174,6 +175,15 @@ EV_VIEW_RULE_EXPR_EXPAND_INFO_FUNCTION_DEF(default)
174175
accel->is_ptr2ptr = 1;
175176
}
176177

178+
////////////////////////////
179+
//- rjf: sets -> expansions generate rows for all possible lookups
180+
//
181+
else if(type_kind == E_TypeKind_Set)
182+
{
183+
E_Type *type = e_type_from_key(scratch.arena, type_key);
184+
//E_LookupRule *rule = e_lookup_rule_from_string(type->name);
185+
}
186+
177187
////////////////////////////
178188
//- rjf: package result
179189
//

src/eval_visualization/eval_visualization_core.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,7 @@ ev_type_key_and_mode_is_expandable(E_TypeKey type_key, E_Mode mode)
115115
kind == E_TypeKind_Union ||
116116
kind == E_TypeKind_Class ||
117117
kind == E_TypeKind_Array ||
118+
kind == E_TypeKind_Set ||
118119
(kind == E_TypeKind_Enum && mode == E_Mode_Null))
119120
{
120121
result = 1;

src/raddbg/generated/raddbg.meta.c

Lines changed: 9 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -73,14 +73,15 @@ RD_VocabularyInfo rd_vocabulary_info_table[41] =
7373
{str8_lit_comp("label"), str8_lit_comp("labels"), str8_lit_comp("Label"), str8_lit_comp("Labels"), RD_IconKind_Null},
7474
};
7575

76-
RD_CfgNameSchemaPair rd_cfg_name_schema_pair_table[6] =
76+
RD_CfgNameSchemaPair rd_cfg_name_schema_pair_table[7] =
7777
{
7878
{str8_lit_comp("settings"), str8_lit_comp("x:\n{\n @default(1) 'hover_animations': bool,\n @default(1) 'press_animations': bool,\n @default(0) 'focus_animations': bool,\n @default(1) 'tooltip_animations': bool,\n @default(1) 'menu_animations': bool,\n @default(1) 'scrolling_animations': bool,\n @default(1) 'background_blur': bool,\n @default(1) 'thread_lines': bool,\n @default(1) 'breakpoint_lines': bool,\n @default(1) 'thread_glow': bool,\n @default(1) 'breakpoint_glow': bool,\n @default(0) 'opaque_backgrounds': bool,\n @default(1) 'smooth_main_text': bool,\n @default(0) 'smooth_code_text': bool,\n @default(1) 'hint_main_text': bool,\n @default(1) 'hint_code_text': bool,\n @default(2) 'tab_width': @range[1, 32] u64,\n @can_be_per_window 'main_font_size': @range[6, 72] u64,\n @can_be_per_window 'code_font_size': @range[1, 32] u64,\n}\n"), str8_lit_comp("")},
7979
{str8_lit_comp("target"), str8_lit_comp("x:\n{\n 'label': code_string,\n 'executable': path,\n 'arguments': string,\n 'working_directory': path,\n 'entry_point': code_string,\n 'stdout_path': path,\n 'stderr_path': path,\n 'stdin_path': path,\n 'debug_subprocesses': bool,\n}\n"), str8_lit_comp("launch_and_run,launch_and_init,select_cfg,remove_cfg")},
8080
{str8_lit_comp("breakpoint"), str8_lit_comp("x:\n{\n 'label': code_string,\n 'condition': code_string,\n 'location': location,\n 'hit_count': u64,\n 'disabled': bool,\n}\n"), str8_lit_comp("enable_cfg,remove_cfg")},
8181
{str8_lit_comp("watch_pin"), str8_lit_comp("x:\n{\n 'expression': code_string,\n 'view_rule': code_string,\n 'location': location,\n}\n"), str8_lit_comp("remove_cfg")},
8282
{str8_lit_comp("file_path_map"), str8_lit_comp("x:{'source':path, 'dest':path}"), str8_lit_comp("remove_cfg")},
8383
{str8_lit_comp("auto_view_rule"), str8_lit_comp("x:{'source':code_string, 'dest':code_string}"), str8_lit_comp("remove_cfg")},
84+
{str8_lit_comp("watch"), str8_lit_comp("x:\n{\n 'expression': code_string,\n 'view_rule': code_string,\n}\n"), str8_lit_comp("remove_cfg")},
8485
};
8586

8687
String8 d_entity_kind_display_string_table[27] =
@@ -710,9 +711,8 @@ str8_lit_comp("5"),
710711
str8_lit_comp("c"),
711712
};
712713

713-
String8 rd_collection_name_table[13] =
714+
String8 rd_collection_name_table[12] =
714715
{
715-
str8_lit_comp("watches"),
716716
str8_lit_comp("machines"),
717717
str8_lit_comp("processes"),
718718
str8_lit_comp("threads"),
@@ -727,9 +727,8 @@ str8_lit_comp("types"),
727727
str8_lit_comp("procedures"),
728728
};
729729

730-
RD_EntityKind rd_collection_entity_kind_table[13] =
730+
RD_EntityKind rd_collection_entity_kind_table[12] =
731731
{
732-
RD_EntityKind_Watch,
733732
RD_EntityKind_Nil,
734733
RD_EntityKind_Nil,
735734
RD_EntityKind_Nil,
@@ -744,9 +743,8 @@ RD_EntityKind_Nil,
744743
RD_EntityKind_Nil,
745744
};
746745

747-
CTRL_EntityKind rd_collection_ctrl_entity_kind_table[13] =
746+
CTRL_EntityKind rd_collection_ctrl_entity_kind_table[12] =
748747
{
749-
CTRL_EntityKind_Null,
750748
CTRL_EntityKind_Machine,
751749
CTRL_EntityKind_Process,
752750
CTRL_EntityKind_Thread,
@@ -761,9 +759,8 @@ CTRL_EntityKind_Null,
761759
CTRL_EntityKind_Null,
762760
};
763761

764-
EV_ViewRuleExprExpandInfoHookFunctionType * rd_collection_expr_expand_info_hook_function_table[13] =
762+
EV_ViewRuleExprExpandInfoHookFunctionType * rd_collection_expr_expand_info_hook_function_table[12] =
765763
{
766-
EV_VIEW_RULE_EXPR_EXPAND_INFO_FUNCTION_NAME(watches),
767764
EV_VIEW_RULE_EXPR_EXPAND_INFO_FUNCTION_NAME(machines),
768765
EV_VIEW_RULE_EXPR_EXPAND_INFO_FUNCTION_NAME(processes),
769766
EV_VIEW_RULE_EXPR_EXPAND_INFO_FUNCTION_NAME(threads),
@@ -778,9 +775,8 @@ EV_VIEW_RULE_EXPR_EXPAND_INFO_FUNCTION_NAME(types),
778775
EV_VIEW_RULE_EXPR_EXPAND_INFO_FUNCTION_NAME(procedures),
779776
};
780777

781-
EV_ViewRuleExprExpandRangeInfoHookFunctionType * rd_collection_expr_expand_range_info_hook_function_table[13] =
778+
EV_ViewRuleExprExpandRangeInfoHookFunctionType * rd_collection_expr_expand_range_info_hook_function_table[12] =
782779
{
783-
EV_VIEW_RULE_EXPR_EXPAND_RANGE_INFO_FUNCTION_NAME(watches),
784780
EV_VIEW_RULE_EXPR_EXPAND_RANGE_INFO_FUNCTION_NAME(machines),
785781
EV_VIEW_RULE_EXPR_EXPAND_RANGE_INFO_FUNCTION_NAME(processes),
786782
EV_VIEW_RULE_EXPR_EXPAND_RANGE_INFO_FUNCTION_NAME(threads),
@@ -795,9 +791,8 @@ EV_VIEW_RULE_EXPR_EXPAND_RANGE_INFO_FUNCTION_NAME(types),
795791
EV_VIEW_RULE_EXPR_EXPAND_RANGE_INFO_FUNCTION_NAME(procedures),
796792
};
797793

798-
EV_ViewRuleExprExpandIDFromNumHookFunctionType * rd_collection_expr_expand_id_from_num_hook_function_table[13] =
794+
EV_ViewRuleExprExpandIDFromNumHookFunctionType * rd_collection_expr_expand_id_from_num_hook_function_table[12] =
799795
{
800-
EV_VIEW_RULE_EXPR_EXPAND_ID_FROM_NUM_FUNCTION_NAME(watches),
801796
EV_VIEW_RULE_EXPR_EXPAND_ID_FROM_NUM_FUNCTION_NAME(machines),
802797
EV_VIEW_RULE_EXPR_EXPAND_ID_FROM_NUM_FUNCTION_NAME(processes),
803798
EV_VIEW_RULE_EXPR_EXPAND_ID_FROM_NUM_FUNCTION_NAME(threads),
@@ -812,9 +807,8 @@ EV_VIEW_RULE_EXPR_EXPAND_ID_FROM_NUM_FUNCTION_NAME(types),
812807
EV_VIEW_RULE_EXPR_EXPAND_ID_FROM_NUM_FUNCTION_NAME(procedures),
813808
};
814809

815-
EV_ViewRuleExprExpandIDFromNumHookFunctionType * rd_collection_expr_expand_num_from_id_hook_function_table[13] =
810+
EV_ViewRuleExprExpandIDFromNumHookFunctionType * rd_collection_expr_expand_num_from_id_hook_function_table[12] =
816811
{
817-
EV_VIEW_RULE_EXPR_EXPAND_NUM_FROM_ID_FUNCTION_NAME(watches),
818812
EV_VIEW_RULE_EXPR_EXPAND_NUM_FROM_ID_FUNCTION_NAME(machines),
819813
EV_VIEW_RULE_EXPR_EXPAND_NUM_FROM_ID_FUNCTION_NAME(processes),
820814
EV_VIEW_RULE_EXPR_EXPAND_NUM_FROM_ID_FUNCTION_NAME(threads),

src/raddbg/generated/raddbg.meta.h

Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -651,7 +651,6 @@ RD_ViewRuleUIFunctionType *ui;
651651
.params_tree = rd_regs()->params_tree,\
652652
.os_event = rd_regs()->os_event,\
653653

654-
EV_VIEW_RULE_EXPR_EXPAND_INFO_FUNCTION_DEF(watches);
655654
EV_VIEW_RULE_EXPR_EXPAND_INFO_FUNCTION_DEF(machines);
656655
EV_VIEW_RULE_EXPR_EXPAND_INFO_FUNCTION_DEF(processes);
657656
EV_VIEW_RULE_EXPR_EXPAND_INFO_FUNCTION_DEF(threads);
@@ -664,7 +663,6 @@ EV_VIEW_RULE_EXPR_EXPAND_INFO_FUNCTION_DEF(globals);
664663
EV_VIEW_RULE_EXPR_EXPAND_INFO_FUNCTION_DEF(thread_locals);
665664
EV_VIEW_RULE_EXPR_EXPAND_INFO_FUNCTION_DEF(types);
666665
EV_VIEW_RULE_EXPR_EXPAND_INFO_FUNCTION_DEF(procedures);
667-
EV_VIEW_RULE_EXPR_EXPAND_RANGE_INFO_FUNCTION_DEF(watches);
668666
EV_VIEW_RULE_EXPR_EXPAND_RANGE_INFO_FUNCTION_DEF(machines);
669667
EV_VIEW_RULE_EXPR_EXPAND_RANGE_INFO_FUNCTION_DEF(processes);
670668
EV_VIEW_RULE_EXPR_EXPAND_RANGE_INFO_FUNCTION_DEF(threads);
@@ -677,7 +675,6 @@ EV_VIEW_RULE_EXPR_EXPAND_RANGE_INFO_FUNCTION_DEF(globals);
677675
EV_VIEW_RULE_EXPR_EXPAND_RANGE_INFO_FUNCTION_DEF(thread_locals);
678676
EV_VIEW_RULE_EXPR_EXPAND_RANGE_INFO_FUNCTION_DEF(types);
679677
EV_VIEW_RULE_EXPR_EXPAND_RANGE_INFO_FUNCTION_DEF(procedures);
680-
EV_VIEW_RULE_EXPR_EXPAND_ID_FROM_NUM_FUNCTION_DEF(watches);
681678
EV_VIEW_RULE_EXPR_EXPAND_ID_FROM_NUM_FUNCTION_DEF(machines);
682679
EV_VIEW_RULE_EXPR_EXPAND_ID_FROM_NUM_FUNCTION_DEF(processes);
683680
EV_VIEW_RULE_EXPR_EXPAND_ID_FROM_NUM_FUNCTION_DEF(threads);
@@ -688,7 +685,6 @@ EV_VIEW_RULE_EXPR_EXPAND_ID_FROM_NUM_FUNCTION_DEF(globals);
688685
EV_VIEW_RULE_EXPR_EXPAND_ID_FROM_NUM_FUNCTION_DEF(thread_locals);
689686
EV_VIEW_RULE_EXPR_EXPAND_ID_FROM_NUM_FUNCTION_DEF(types);
690687
EV_VIEW_RULE_EXPR_EXPAND_ID_FROM_NUM_FUNCTION_DEF(procedures);
691-
EV_VIEW_RULE_EXPR_EXPAND_NUM_FROM_ID_FUNCTION_DEF(watches);
692688
EV_VIEW_RULE_EXPR_EXPAND_NUM_FROM_ID_FUNCTION_DEF(machines);
693689
EV_VIEW_RULE_EXPR_EXPAND_NUM_FROM_ID_FUNCTION_DEF(processes);
694690
EV_VIEW_RULE_EXPR_EXPAND_NUM_FROM_ID_FUNCTION_DEF(threads);
@@ -738,7 +734,7 @@ extern String8 rd_cfg_src_string_table[4];
738734
extern RD_CmdKind rd_cfg_src_load_cmd_kind_table[4];
739735
extern RD_CmdKind rd_cfg_src_write_cmd_kind_table[4];
740736
extern RD_VocabularyInfo rd_vocabulary_info_table[41];
741-
extern RD_CfgNameSchemaPair rd_cfg_name_schema_pair_table[6];
737+
extern RD_CfgNameSchemaPair rd_cfg_name_schema_pair_table[7];
742738
extern String8 d_entity_kind_display_string_table[27];
743739
extern String8 d_entity_kind_name_lower_table[27];
744740
extern String8 d_entity_kind_name_lower_plural_table[27];
@@ -749,13 +745,13 @@ extern RD_StringBindingPair rd_default_binding_table[110];
749745
extern String8 rd_binding_version_remap_old_name_table[8];
750746
extern String8 rd_binding_version_remap_new_name_table[8];
751747
extern String8 rd_icon_kind_text_table[69];
752-
extern String8 rd_collection_name_table[13];
753-
extern RD_EntityKind rd_collection_entity_kind_table[13];
754-
extern CTRL_EntityKind rd_collection_ctrl_entity_kind_table[13];
755-
extern EV_ViewRuleExprExpandInfoHookFunctionType * rd_collection_expr_expand_info_hook_function_table[13];
756-
extern EV_ViewRuleExprExpandRangeInfoHookFunctionType * rd_collection_expr_expand_range_info_hook_function_table[13];
757-
extern EV_ViewRuleExprExpandIDFromNumHookFunctionType * rd_collection_expr_expand_id_from_num_hook_function_table[13];
758-
extern EV_ViewRuleExprExpandIDFromNumHookFunctionType * rd_collection_expr_expand_num_from_id_hook_function_table[13];
748+
extern String8 rd_collection_name_table[12];
749+
extern RD_EntityKind rd_collection_entity_kind_table[12];
750+
extern CTRL_EntityKind rd_collection_ctrl_entity_kind_table[12];
751+
extern EV_ViewRuleExprExpandInfoHookFunctionType * rd_collection_expr_expand_info_hook_function_table[12];
752+
extern EV_ViewRuleExprExpandRangeInfoHookFunctionType * rd_collection_expr_expand_range_info_hook_function_table[12];
753+
extern EV_ViewRuleExprExpandIDFromNumHookFunctionType * rd_collection_expr_expand_id_from_num_hook_function_table[12];
754+
extern EV_ViewRuleExprExpandIDFromNumHookFunctionType * rd_collection_expr_expand_num_from_id_hook_function_table[12];
759755
extern RD_ViewRuleInfo rd_view_rule_kind_info_table[28];
760756
extern RD_IconKind rd_entity_kind_icon_kind_table[27];
761757
extern String8 rd_theme_preset_display_string_table[9];

src/raddbg/raddbg.mdesk

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -201,6 +201,19 @@ RD_VocabularyMap:
201201
```x:{'source':code_string, 'dest':code_string}```,
202202
`remove_cfg`,
203203
}
204+
205+
//- rjf: watches
206+
{
207+
watch,
208+
```x:
209+
{
210+
'expression': code_string,
211+
'view_rule': code_string,
212+
}
213+
```,
214+
`remove_cfg`,
215+
}
216+
204217
}
205218

206219
@struct RD_CfgNameSchemaPair:
@@ -993,7 +1006,7 @@ RD_IconTable:
9931006
RD_CollectionTable:
9941007
{
9951008
//- rjf: frontend entity groups
996-
{watches Watch Null x}
1009+
//{watches Watch Null x}
9971010
//{targets Target Null x}
9981011
//{breakpoints Breakpoint Null x}
9991012
//{watch_pins WatchPin Null x}

src/raddbg/raddbg_core.c

Lines changed: 64 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9161,6 +9161,65 @@ EV_VIEW_RULE_EXPR_EXPAND_RANGE_INFO_FUNCTION_DEF(procedures) {return rd_ev_
91619161
EV_VIEW_RULE_EXPR_EXPAND_ID_FROM_NUM_FUNCTION_DEF(procedures) {return rd_ev_view_rule_expr_id_from_num__debug_info_tables(num, user_data, RDI_SectionKind_Procedures); }
91629162
EV_VIEW_RULE_EXPR_EXPAND_NUM_FROM_ID_FUNCTION_DEF(procedures) {return rd_ev_view_rule_expr_num_from_id__debug_info_tables(id, user_data, RDI_SectionKind_Procedures); }
91639163

9164+
E_LOOKUP_INFO_FUNCTION_DEF(top_level_cfg)
9165+
{
9166+
E_LookupInfo result = {0};
9167+
Temp scratch = scratch_begin(&arena, 1);
9168+
{
9169+
E_IRTreeAndType lhs_irtree = e_irtree_and_type_from_expr(scratch.arena, lhs);
9170+
E_TypeKey lhs_type_key = lhs_irtree.type_key;
9171+
E_Type *lhs_type = e_type_from_key(scratch.arena, lhs_type_key);
9172+
RD_CfgList cfgs_list = rd_cfg_top_level_list_from_string(scratch.arena, lhs_type->name);
9173+
RD_CfgArray *cfgs = push_array(arena, RD_CfgArray, 1);
9174+
cfgs[0] = rd_cfg_array_from_list(arena, &cfgs_list);
9175+
result.user_data = cfgs;
9176+
result.idxed_expr_count = cfgs_list.count;
9177+
}
9178+
scratch_end(scratch);
9179+
return result;
9180+
}
9181+
9182+
E_LOOKUP_FUNCTION_DEF(top_level_cfg)
9183+
{
9184+
E_Lookup result = {{&e_irnode_nil}};
9185+
if(kind == E_ExprKind_ArrayIndex)
9186+
{
9187+
Temp scratch = scratch_begin(&arena, 1);
9188+
RD_CfgArray *cfgs = (RD_CfgArray *)user_data;
9189+
E_IRTreeAndType rhs_irtree = e_irtree_and_type_from_expr(scratch.arena, rhs);
9190+
E_OpList rhs_oplist = e_oplist_from_irtree(scratch.arena, rhs_irtree.root);
9191+
String8 rhs_bytecode = e_bytecode_from_oplist(scratch.arena, &rhs_oplist);
9192+
E_Interpretation rhs_interp = e_interpret(rhs_bytecode);
9193+
E_Value rhs_value = rhs_interp.value;
9194+
if(0 <= rhs_value.u64 && rhs_value.u64 < cfgs->count)
9195+
{
9196+
RD_Cfg *cfg = cfgs->v[rhs_value.u64];
9197+
E_Space cfg_space = rd_eval_space_from_cfg(cfg);
9198+
String8 cfg_name = cfg->string;
9199+
E_TypeKey cfg_type_key = {0};
9200+
{
9201+
U64 hash = d_hash_from_string(cfg_name);
9202+
U64 slot_idx = hash%rd_state->cfg_string2typekey_map->slots_count;
9203+
for(RD_String2TypeKeyNode *n = rd_state->cfg_string2typekey_map->slots[slot_idx].first;
9204+
n != 0;
9205+
n = n->next)
9206+
{
9207+
if(str8_match(n->string, cfg_name, 0))
9208+
{
9209+
cfg_type_key = n->key;
9210+
break;
9211+
}
9212+
}
9213+
}
9214+
result.irtree_and_type.root = e_irtree_set_space(arena, cfg_space, e_irtree_const_u(arena, 0));
9215+
result.irtree_and_type.type_key = cfg_type_key;
9216+
result.irtree_and_type.mode = E_Mode_Offset;
9217+
}
9218+
scratch_end(scratch);
9219+
}
9220+
return result;
9221+
}
9222+
91649223
internal EV_ExpandInfo
91659224
rd_ev_view_rule_expr_expand_info__meta_entities(Arena *arena, EV_View *view, String8 filter, E_Expr *expr, MD_Node *params, RD_EntityKind kind)
91669225
{
@@ -13104,6 +13163,7 @@ rd_frame(void)
1310413163
//- rjf: choose set of evallable config names
1310513164
String8 evallable_cfg_names[] =
1310613165
{
13166+
str8_lit("watch"),
1310713167
str8_lit("breakpoint"),
1310813168
str8_lit("watch_pin"),
1310913169
str8_lit("target"),
@@ -13208,10 +13268,10 @@ rd_frame(void)
1320813268
for EachElement(idx, evallable_cfg_names)
1320913269
{
1321013270
String8 name = evallable_cfg_names[idx];
13211-
RD_CfgList cfgs = rd_cfg_top_level_list_from_string(scratch.arena, name);
13212-
for(RD_CfgNode *n = cfgs.first; n != 0; n = n->next)
13271+
RD_CfgArray cfgs = rd_state->eval_collection_cfgs[idx];
13272+
for EachIndex(cfg_idx, cfgs.count)
1321313273
{
13214-
RD_Cfg *cfg = n->v;
13274+
RD_Cfg *cfg = cfgs.v[cfg_idx];
1321513275
String8 label = rd_cfg_child_from_string(cfg, str8_lit("label"))->first->string;
1321613276
String8 exe = rd_cfg_child_from_string(cfg, str8_lit("executable"))->first->string;
1321713277
E_Space space = rd_eval_space_from_cfg(cfg);
@@ -13293,7 +13353,7 @@ rd_frame(void)
1329313353
expr->mode = E_Mode_Offset;
1329413354
expr->type_key = collection_type_key;
1329513355
e_string2expr_map_insert(scratch.arena, ctx->macro_map, collection_name, expr);
13296-
// TODO(rjf): e_lookup_rule_map_insert_new(scratch.arena, ctx->lookup_rule_map, collection_name, );
13356+
e_lookup_rule_map_insert_new(scratch.arena, ctx->lookup_rule_map, collection_name, E_LOOKUP_INFO_FUNCTION_NAME(top_level_cfg), E_LOOKUP_FUNCTION_NAME(top_level_cfg));
1329713357
}
1329813358

1329913359
//- rjf: add macro for output log

src/raddbg/raddbg_core.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1333,6 +1333,9 @@ internal void rd_window_frame(void);
13331333
////////////////////////////////
13341334
//~ rjf: Eval Visualization
13351335

1336+
E_LOOKUP_INFO_FUNCTION_DEF(top_level_cfg);
1337+
E_LOOKUP_FUNCTION_DEF(top_level_cfg);
1338+
13361339
internal EV_ExpandInfo rd_ev_view_rule_expr_expand_info__meta_entities(Arena *arena, EV_View *view, String8 filter, E_Expr *expr, MD_Node *params, RD_EntityKind kind);
13371340
internal EV_ExpandRangeInfo rd_ev_view_rule_expr_expand_range_info__meta_entities(Arena *arena, EV_View *view, String8 filter, E_Expr *expr, MD_Node *params, Rng1U64 idx_range, void *user_data, RD_EntityKind kind, B32 add_new_at_top);
13381341
internal U64 rd_ev_view_rule_expr_id_from_num__meta_entities(U64 num, void *user_data, RD_EntityKind kind, B32 add_new_at_top);

src/raddbg/raddbg_main.c

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -596,6 +596,14 @@ entry_point(CmdLine *cmd_line)
596596
rd_init(cmd_line);
597597
}
598598

599+
//- TODO(rjf): @cfg set up debugging config state
600+
{
601+
RD_Cfg *user = rd_cfg_child_from_string(rd_state->root_cfg, str8_lit("user"));
602+
RD_Cfg *watch = rd_cfg_new(user, str8_lit("watch"));
603+
RD_Cfg *expr = rd_cfg_new(watch, str8_lit("expression"));
604+
rd_cfg_new(expr, str8_lit("basics"));
605+
}
606+
599607
//- rjf: setup initial target from command line args
600608
{
601609
String8List args = cmd_line->inputs;

0 commit comments

Comments
 (0)