mirror of
https://github.com/Ed94/raddebugger.git
synced 2026-08-06 13:58:40 +00:00
update memory range parameter extraction in visualizers, to be based on cfg tree
This commit is contained in:
File diff suppressed because one or more lines are too long
@@ -409,7 +409,7 @@ RD_VocabTable:
|
|||||||
{
|
{
|
||||||
tab,
|
tab,
|
||||||
```
|
```
|
||||||
@expand_commands(duplicate_tab, close_tab)
|
@row_commands(duplicate_tab, close_tab)
|
||||||
x:
|
x:
|
||||||
{
|
{
|
||||||
@default(11) @display_name('Tab Font Size') @description("Controls the tab's font size.")
|
@default(11) @display_name('Tab Font Size') @description("Controls the tab's font size.")
|
||||||
|
|||||||
+15
-12
@@ -13337,24 +13337,27 @@ rd_frame(void)
|
|||||||
RD_Cfg *tab = rd_cfg_from_id(rd_regs()->tab);
|
RD_Cfg *tab = rd_cfg_from_id(rd_regs()->tab);
|
||||||
RD_PanelTree panel_tree = rd_panel_tree_from_cfg(scratch.arena, tab);
|
RD_PanelTree panel_tree = rd_panel_tree_from_cfg(scratch.arena, tab);
|
||||||
RD_PanelNode *panel = rd_panel_node_from_tree_cfg(panel_tree.root, tab->parent);
|
RD_PanelNode *panel = rd_panel_node_from_tree_cfg(panel_tree.root, tab->parent);
|
||||||
B32 found_selected = 0;
|
if(panel->selected_tab == tab)
|
||||||
RD_Cfg *next_selected_tab = &rd_nil_cfg;
|
|
||||||
for(RD_CfgNode *n = panel->tabs.first; n != 0; n = n->next)
|
|
||||||
{
|
{
|
||||||
if(n->v == panel->selected_tab)
|
B32 found_selected = 0;
|
||||||
|
RD_Cfg *next_selected_tab = &rd_nil_cfg;
|
||||||
|
for(RD_CfgNode *n = panel->tabs.first; n != 0; n = n->next)
|
||||||
{
|
{
|
||||||
found_selected = 1;
|
if(n->v == panel->selected_tab)
|
||||||
}
|
|
||||||
else if(!rd_cfg_is_project_filtered(n->v))
|
|
||||||
{
|
|
||||||
next_selected_tab = n->v;
|
|
||||||
if(found_selected)
|
|
||||||
{
|
{
|
||||||
break;
|
found_selected = 1;
|
||||||
|
}
|
||||||
|
else if(!rd_cfg_is_project_filtered(n->v))
|
||||||
|
{
|
||||||
|
next_selected_tab = n->v;
|
||||||
|
if(found_selected)
|
||||||
|
{
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
rd_cmd(RD_CmdKind_FocusTab, .tab = next_selected_tab->id);
|
||||||
}
|
}
|
||||||
rd_cmd(RD_CmdKind_FocusTab, .tab = next_selected_tab->id);
|
|
||||||
rd_cfg_release(tab);
|
rd_cfg_release(tab);
|
||||||
}break;
|
}break;
|
||||||
case RD_CmdKind_MoveView:
|
case RD_CmdKind_MoveView:
|
||||||
|
|||||||
@@ -1906,7 +1906,13 @@ RD_VIEW_UI_FUNCTION_DEF(text)
|
|||||||
if(rd_regs()->cursor.column == 0) { rd_regs()->cursor.column = 1; }
|
if(rd_regs()->cursor.column == 0) { rd_regs()->cursor.column = 1; }
|
||||||
if(rd_regs()->mark.line == 0) { rd_regs()->mark.line = 1; }
|
if(rd_regs()->mark.line == 0) { rd_regs()->mark.line = 1; }
|
||||||
if(rd_regs()->mark.column == 0) { rd_regs()->mark.column = 1; }
|
if(rd_regs()->mark.column == 0) { rd_regs()->mark.column = 1; }
|
||||||
Rng1U64 range = e_range_from_eval(eval);
|
U64 base_offset = e_base_offset_from_eval(eval);
|
||||||
|
U64 size = rd_view_cfg_value_from_string(str8_lit("size")).u64;
|
||||||
|
if(size == 0)
|
||||||
|
{
|
||||||
|
size = e_type_byte_size_from_key(e_type_key_unwrap(eval.irtree.type_key, E_TypeUnwrapFlag_AllDecorative));
|
||||||
|
}
|
||||||
|
Rng1U64 range = r1u64(base_offset, base_offset+size);
|
||||||
rd_regs()->text_key = rd_key_from_eval_space_range(eval.space, range, 1);
|
rd_regs()->text_key = rd_key_from_eval_space_range(eval.space, range, 1);
|
||||||
String8 lang = rd_view_cfg_from_string(str8_lit("lang"))->first->string;
|
String8 lang = rd_view_cfg_from_string(str8_lit("lang"))->first->string;
|
||||||
if(lang.size == 0)
|
if(lang.size == 0)
|
||||||
@@ -2174,7 +2180,13 @@ RD_VIEW_UI_FUNCTION_DEF(disasm)
|
|||||||
{
|
{
|
||||||
space = auto_space;
|
space = auto_space;
|
||||||
}
|
}
|
||||||
Rng1U64 range = e_range_from_eval(eval);
|
U64 base_offset = e_base_offset_from_eval(eval);
|
||||||
|
U64 size = rd_view_cfg_value_from_string(str8_lit("size")).u64;
|
||||||
|
if(size == 0)
|
||||||
|
{
|
||||||
|
size = KB(16);
|
||||||
|
}
|
||||||
|
Rng1U64 range = r1u64(base_offset, base_offset+size);
|
||||||
Arch arch = rd_arch_from_eval(eval);
|
Arch arch = rd_arch_from_eval(eval);
|
||||||
CTRL_Entity *space_entity = rd_ctrl_entity_from_eval_space(space);
|
CTRL_Entity *space_entity = rd_ctrl_entity_from_eval_space(space);
|
||||||
CTRL_Entity *dasm_module = &ctrl_entity_nil;
|
CTRL_Entity *dasm_module = &ctrl_entity_nil;
|
||||||
@@ -2211,6 +2223,10 @@ RD_VIEW_UI_FUNCTION_DEF(disasm)
|
|||||||
{
|
{
|
||||||
style_flags |= DASM_StyleFlag_SymbolNames;
|
style_flags |= DASM_StyleFlag_SymbolNames;
|
||||||
}
|
}
|
||||||
|
if(str8_match(rd_setting_from_name(str8_lit("syntax")), str8_lit("att"), 0))
|
||||||
|
{
|
||||||
|
syntax = DASM_Syntax_ATT;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
U128 dasm_key = rd_key_from_eval_space_range(space, range, 0);
|
U128 dasm_key = rd_key_from_eval_space_range(space, range, 0);
|
||||||
U128 dasm_data_hash = {0};
|
U128 dasm_data_hash = {0};
|
||||||
@@ -2343,6 +2359,13 @@ RD_VIEW_UI_FUNCTION_DEF(memory)
|
|||||||
//- rjf: unpack parameterization info
|
//- rjf: unpack parameterization info
|
||||||
//
|
//
|
||||||
Rng1U64 space_range = e_range_from_eval(eval);
|
Rng1U64 space_range = e_range_from_eval(eval);
|
||||||
|
U64 base_offset = e_base_offset_from_eval(eval);
|
||||||
|
U64 size = rd_view_cfg_value_from_string(str8_lit("size")).u64;
|
||||||
|
if(size == 0)
|
||||||
|
{
|
||||||
|
size = e_type_byte_size_from_key(e_type_key_unwrap(eval.irtree.type_key, E_TypeUnwrapFlag_AllDecorative));
|
||||||
|
}
|
||||||
|
space_range = r1u64(base_offset, base_offset+size);
|
||||||
if(eval.space.kind == 0)
|
if(eval.space.kind == 0)
|
||||||
{
|
{
|
||||||
eval.space = rd_eval_space_from_ctrl_entity(ctrl_entity_from_handle(d_state->ctrl_entity_store, rd_regs()->process), RD_EvalSpaceKind_CtrlEntity);
|
eval.space = rd_eval_space_from_ctrl_entity(ctrl_entity_from_handle(d_state->ctrl_entity_store, rd_regs()->process), RD_EvalSpaceKind_CtrlEntity);
|
||||||
|
|||||||
Reference in New Issue
Block a user