formally support hresult codes as distinct from handles in debug info & visualization

This commit is contained in:
Ryan Fleury
2024-08-14 13:48:09 -07:00
parent a9f4a11c0a
commit 33fe9ba485
19 changed files with 340 additions and 215 deletions
+5 -13
View File
@@ -3795,19 +3795,11 @@ df_window_update_and_render(Arena *arena, DF_Window *ws, DF_CmdList *cmds)
}
if(range.min.line == range.max.line && ui_clicked(df_icon_buttonf(ws, DF_IconKind_CircleFilled, 0, "Toggle Breakpoint")))
{
if(ws->code_ctx_menu_vaddr != 0)
{
DF_CmdParams p = df_cmd_params_from_window(ws);
p.vaddr = ws->code_ctx_menu_vaddr;
df_push_cmd__root(&p, df_cmd_spec_from_core_cmd_kind(DF_CoreCmdKind_AddressBreakpoint));
}
else
{
DF_CmdParams p = df_cmd_params_from_window(ws);
p.file_path = ws->code_ctx_menu_file_path;
p.text_point = range.min;
df_push_cmd__root(&p, df_cmd_spec_from_core_cmd_kind(DF_CoreCmdKind_TextBreakpoint));
}
DF_CmdParams p = df_cmd_params_from_window(ws);
p.file_path = ws->code_ctx_menu_file_path;
p.text_point = range.min;
p.vaddr = ws->code_ctx_menu_vaddr;
df_push_cmd__root(&p, df_cmd_spec_from_core_cmd_kind(DF_CoreCmdKind_ToggleBreakpoint));
ui_ctx_menu_close();
}
if(range.min.line == range.max.line && ui_clicked(df_icon_buttonf(ws, DF_IconKind_Binoculars, 0, "Toggle Watch Expression")))
+9 -7
View File
@@ -193,6 +193,8 @@ DF_BindingVersionRemapTable:
{"load_profile" "open_profile"}
{"load_project" "open_project"}
{"open_profile" "open_project"}
{"address_breakpoint" "add_address_breakpoint"}
{"function_breakpoint" "add_function_breakpoint"}
}
@data(String8) df_g_binding_version_remap_old_name_table:
@@ -269,13 +271,13 @@ DF_GfxViewTable:
@table(slot view_spec opt_cmd_spec)
DF_CmdParamSlot2ViewSpecMap:
{
{Entity "entity_lister" "" }
{EntityList "entity_lister" "" }
{FilePath "file_system" "" }
{CmdSpec "commands" "" }
{ID "system_processes" "" }
{String "symbol_lister" "goto_name" }
{String "symbol_lister" "function_breakpoint" }
{Entity "entity_lister" "" }
{EntityList "entity_lister" "" }
{FilePath "file_system" "" }
{CmdSpec "commands" "" }
{ID "system_processes" "" }
{String "symbol_lister" "goto_name" }
{String "symbol_lister" "add_function_breakpoint" }
}
@data(DF_CmdParamSlot) df_g_cmd_param_slot_2_view_spec_src_map:
+10 -4
View File
@@ -2076,14 +2076,20 @@ df_watch_view_build(DF_Window *ws, DF_Panel *panel, DF_View *view, DF_WatchViewS
if((evt->delta_2s32.x < 0 || evt->delta_2s32.y < 0) && !df_expand_key_match(df_expand_key_zero(), fallback_pt_prev.key))
{
DF_Entity *fallback_watch = df_entity_from_expand_key_and_kind(fallback_pt_prev.key, DF_EntityKind_Watch);
new_cursor_key = fallback_pt_prev.key;
new_cursor_parent_key = df_parent_expand_key_from_entity(fallback_watch);
if(!df_entity_is_nil(fallback_watch))
{
new_cursor_key = fallback_pt_prev.key;
new_cursor_parent_key = df_parent_expand_key_from_entity(fallback_watch);
}
}
else if(!df_expand_key_match(df_expand_key_zero(), fallback_pt_next.key))
{
DF_Entity *fallback_watch = df_entity_from_expand_key_and_kind(fallback_pt_next.key, DF_EntityKind_Watch);
new_cursor_key = fallback_pt_next.key;
new_cursor_parent_key = df_parent_expand_key_from_entity(fallback_watch);
if(!df_entity_is_nil(fallback_watch))
{
new_cursor_key = fallback_pt_next.key;
new_cursor_parent_key = df_parent_expand_key_from_entity(fallback_watch);
}
}
DF_WatchViewPoint new_cursor_pt = {DF_WatchViewColumnKind_Expr, new_cursor_parent_key, new_cursor_key};
df_entity_mark_for_deletion(watch);
+7 -3
View File
@@ -118,22 +118,26 @@ DF_StringBindingPair df_g_default_binding_table[110] =
{str8_lit_comp("log_marker"), {OS_Key_M, 0 |OS_EventFlag_Ctrl |OS_EventFlag_Shift |OS_EventFlag_Alt}},
};
String8 df_g_binding_version_remap_old_name_table[5] =
String8 df_g_binding_version_remap_old_name_table[7] =
{
str8_lit_comp("commands"),
str8_lit_comp("load_user"),
str8_lit_comp("load_profile"),
str8_lit_comp("load_project"),
str8_lit_comp("open_profile"),
str8_lit_comp("address_breakpoint"),
str8_lit_comp("function_breakpoint"),
};
String8 df_g_binding_version_remap_new_name_table[5] =
String8 df_g_binding_version_remap_new_name_table[7] =
{
str8_lit_comp("run_command"),
str8_lit_comp("open_user"),
str8_lit_comp("open_profile"),
str8_lit_comp("open_project"),
str8_lit_comp("open_project"),
str8_lit_comp("add_address_breakpoint"),
str8_lit_comp("add_function_breakpoint"),
};
DF_ViewSpecInfo df_g_gfx_view_kind_spec_info_table[31] =
@@ -201,7 +205,7 @@ str8_lit_comp(""),
str8_lit_comp(""),
str8_lit_comp(""),
str8_lit_comp("goto_name"),
str8_lit_comp("function_breakpoint"),
str8_lit_comp("add_function_breakpoint"),
};
DF_ViewSpecInfo df_g_gfx_view_rule_tab_view_spec_info_table[4] =
+2 -2
View File
@@ -321,8 +321,8 @@ DF_VIEW_UI_FUNCTION_DEF(bitmap);
DF_VIEW_UI_FUNCTION_DEF(geo);
C_LINKAGE_BEGIN
extern DF_StringBindingPair df_g_default_binding_table[110];
extern String8 df_g_binding_version_remap_old_name_table[5];
extern String8 df_g_binding_version_remap_new_name_table[5];
extern String8 df_g_binding_version_remap_old_name_table[7];
extern String8 df_g_binding_version_remap_new_name_table[7];
extern DF_ViewSpecInfo df_g_gfx_view_kind_spec_info_table[31];
extern DF_CmdParamSlot df_g_cmd_param_slot_2_view_spec_src_map[7];
extern String8 df_g_cmd_param_slot_2_view_spec_dst_map[7];