From 921b555346459c2087f30de7cc82cb245efdaec7 Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Sat, 20 Jan 2024 10:49:23 -0800 Subject: [PATCH] enable type evaluation in eval system & watch views --- src/df/gfx/df_gfx.c | 22 +++++++++++++++++++++- src/eval/eval_compiler.c | 5 +++++ src/raddbg/raddbg.h | 6 +++++- 3 files changed, 31 insertions(+), 2 deletions(-) diff --git a/src/df/gfx/df_gfx.c b/src/df/gfx/df_gfx.c index 64e659c6..4f7386fc 100644 --- a/src/df/gfx/df_gfx.c +++ b/src/df/gfx/df_gfx.c @@ -6782,7 +6782,11 @@ df_single_line_eval_value_strings_from_eval(Arena *arena, DF_EvalVizStringFlags ProfBeginFunction(); String8List list = {0}; F32 space_taken = 0; - if(max_size > 0) + if(eval.mode == EVAL_EvalMode_NULL && !tg_key_match(tg_key_zero(), eval.type_key)) + { + str8_list_push(arena, &list, str8_lit("-")); + } + else if(max_size > 0) { TG_Kind eval_type_kind = tg_kind_from_key(tg_unwrapped_from_graph_raddbg_key(graph, rdbg, eval.type_key)); U32 radix = default_radix; @@ -7187,6 +7191,10 @@ df_eval_viz_windowed_row_list_from_viz_block_list(Arena *arena, DBGI_Scope *scop { break; } + if(block->eval.mode == EVAL_EvalMode_NULL) + { + break; + } } } row->depth = block->depth; @@ -7269,6 +7277,10 @@ df_eval_viz_windowed_row_list_from_viz_block_list(Arena *arena, DBGI_Scope *scop { break; } + if(block->eval.mode == EVAL_EvalMode_NULL) + { + break; + } } } row->depth = block->depth; @@ -7349,6 +7361,10 @@ df_eval_viz_windowed_row_list_from_viz_block_list(Arena *arena, DBGI_Scope *scop { break; } + if(block->eval.mode == EVAL_EvalMode_NULL) + { + break; + } } } row->depth = block->depth; @@ -7429,6 +7445,10 @@ df_eval_viz_windowed_row_list_from_viz_block_list(Arena *arena, DBGI_Scope *scop { break; } + if(block->eval.mode == EVAL_EvalMode_NULL) + { + break; + } } } row->depth = block->depth; diff --git a/src/eval/eval_compiler.c b/src/eval/eval_compiler.c index 2b895269..320603fe 100644 --- a/src/eval/eval_compiler.c +++ b/src/eval/eval_compiler.c @@ -1542,6 +1542,11 @@ eval_irtree_and_type_from_expr(Arena *arena, TG_Graph *graph, RADDBG_Parsed *rdb }break; case EVAL_ExprKind_TypeIdent: + { + result.tree = &eval_irtree_nil; + result.type_key = expr->type_key; + result.mode = EVAL_EvalMode_NULL; + }break; case EVAL_ExprKind_Ptr: case EVAL_ExprKind_Array: case EVAL_ExprKind_Func: diff --git a/src/raddbg/raddbg.h b/src/raddbg/raddbg.h index f85b9781..87014e65 100644 --- a/src/raddbg/raddbg.h +++ b/src/raddbg/raddbg.h @@ -29,6 +29,10 @@ //////////////////////////////// //~ rjf: Hot, Medium Priority Tasks (Low-Hanging-Fruit Features, UI Jank, Cleanup) // +// [ ] Watch Window Type Evaluation +// [ ] Globals, Thread-Locals, Types Views +// [ ] Watch Window Filtering +// // [ ] escaping in config files - breakpoint labels etc. // [ ] focus changing between query bar & panel content via mouse // @@ -420,7 +424,7 @@ #define RADDBG_VERSION_MAJOR 0 #define RADDBG_VERSION_MINOR 9 -#define RADDBG_VERSION_PATCH 5 +#define RADDBG_VERSION_PATCH 6 #define RADDBG_VERSION_STRING_LITERAL Stringify(RADDBG_VERSION_MAJOR) "." Stringify(RADDBG_VERSION_MINOR) "." Stringify(RADDBG_VERSION_PATCH) #if defined(NDEBUG) # define RADDBG_TITLE_STRING_LITERAL "The RAD Debugger (" RADDBG_VERSION_STRING_LITERAL " ALPHA) - " __DATE__ ""