Revert "another checkpoint in big df entity elimination pass"

This reverts commit f8fd32e328.
This commit is contained in:
Ryan Fleury
2024-09-07 14:48:34 -07:00
parent 6180da1b0f
commit cccbd265ff
16 changed files with 3091 additions and 3714 deletions
+1 -1
View File
@@ -46,7 +46,7 @@ load_paths =
commands =
{
//- rjf: fkey command slots (change locally but do not commit)
.f1 = { .win = "build raddbg telemetry clang", .linux = "", .out = "*compilation*", .footer_panel = true, .save_dirty_files = true, .cursor_at_end = false, },
.f1 = { .win = "build raddbg telemetry", .linux = "", .out = "*compilation*", .footer_panel = true, .save_dirty_files = true, .cursor_at_end = false, },
.f2 = { .win = "build rdi_from_pdb", .linux = "", .out = "*compilation*", .footer_panel = true, .save_dirty_files = true, .cursor_at_end = false, },
.f3 = { .win = "pushd build && raddbg.exe --user:local_dev.raddbg_user --project:local_dev.raddbg_project --auto_run && popd", .linux = "", .out = "*compilation*", .footer_panel = true, .save_dirty_files = true, .cursor_at_end = false, },
-1
View File
@@ -245,7 +245,6 @@ internal String8 str8_from_s64(Arena *arena, S64 s64, U32 radix, U8 min_digits,
//~ rjf: String <=> Float Conversions
internal F64 f64_from_str8(String8 string);
#define f32_from_str8(string) (F32)f64_from_str8(string)
////////////////////////////////
//~ rjf: String List Construction Functions
+10 -5
View File
@@ -91,9 +91,9 @@ D_RegTable:
{
// rjf: entity info
{CTRL_MachineID machine_id MachineID }
{DMN_Handle process Process }
{DMN_Handle module Module }
{DMN_Handle thread Thread }
{DMN_Handle process process }
{DMN_Handle module module }
{DMN_Handle thread thread }
{D_Handle window Window }
{D_Handle panel Panel }
{D_Handle view View }
@@ -157,6 +157,8 @@ D_RegTable:
@table(name name_display name_lower show_in_ui show_in_ipc_docs q_slot q_ent_kind q_allow_files q_allow_folders q_keep_oi q_select_oi q_is_code q_required canonical_icon desc)
D_MsgKindTable:
{
{Null "" null 0 0 Null Nil 0 0 0 0 0 0 Null ""}
//- rjf: low level target operations
{LaunchAndRun "Launch And Run" launch_and_run 0 0 Null Nil 0 0 0 0 0 0 Null ""}
{LaunchAndStepInto "Launch And Step Into" launch_and_step_into 0 0 Null Nil 0 0 0 0 0 0 Null ""}
@@ -205,14 +207,17 @@ D_MsgKindTable:
@enum D_MsgKind:
{
Null,
@expand(D_MsgKindTable a) `$(a.name)`,
COUNT
}
@data(String8) d_msg_kind_name_lower_table:
{
`{0}`,
@expand(D_MsgKindTable a) `str8_lit_comp("$(a.name_lower)")`
}
@data(String8) d_msg_kind_name_display_table:
{
@expand(D_MsgKindTable a) `str8_lit_comp("$(a.name_lower)")`
}
+19 -44
View File
@@ -117,11 +117,16 @@ internal void
d_regs_copy_contents(Arena *arena, D_Regs *dst, D_Regs *src)
{
MemoryCopyStruct(dst, src);
dst->entity_list = d_handle_list_copy(arena, src->entity_list);
dst->file_path = push_str8_copy(arena, src->file_path);
dst->lines = d_line_list_copy(arena, &src->lines);
dst->dbgi_key = di_key_copy(arena, &src->dbgi_key);
dst->string = push_str8_copy(arena, src->string);
dst->params_tree = md_tree_copy(arena, src->params_tree);
if(dst->entity_list.count == 0 && !d_handle_match(d_handle_zero(), dst->entity))
{
d_handle_list_push(arena, &dst->entity_list, dst->entity);
}
}
internal D_Regs *
@@ -648,7 +653,6 @@ d_cmd_params_apply_spec_query(Arena *arena, D_CmdParams *params, D_CmdSpec *spec
//- rjf: command lists
#if 0 // TODO(rjf): @msgs
internal void
d_cmd_list_push(Arena *arena, D_CmdList *cmds, D_CmdParams *params, D_CmdSpec *spec)
{
@@ -658,7 +662,6 @@ d_cmd_list_push(Arena *arena, D_CmdList *cmds, D_CmdParams *params, D_CmdSpec *s
DLLPushBack(cmds->first, cmds->last, n);
cmds->count += 1;
}
#endif
//- rjf: string -> core layer command kind
@@ -3400,7 +3403,7 @@ d_ctrl_run(D_RunKind run, CTRL_Entity *run_thread, CTRL_RunFlags flags, CTRL_Tra
CTRL_Msg msg = {(run == D_RunKind_Run || run == D_RunKind_Step) ? CTRL_MsgKind_Run : CTRL_MsgKind_SingleStep};
{
D_EntityList user_bps = d_query_cached_entity_list_with_kind(D_EntityKind_Breakpoint);
CTRL_Entity *process = ctrl_entity_ancestor_from_kind(run_thread, CTRL_EntityKind_Process);
CTRL_Entity *process = ctrl_entity_ancestor_from_kind(run_thread, D_EntityKind_Process);
msg.run_flags = flags;
msg.machine_id = run_thread->machine_id;
msg.entity = run_thread->handle;
@@ -3555,7 +3558,6 @@ d_eval_space_read(void *u, E_Space space, void *out, Rng1U64 range)
}break;
//- rjf: default -> evaluating a debugger entity; read from entity POD evaluation
default:{}break;
#if 0 // TODO(rjf): @msgs
default:
{
@@ -3595,7 +3597,7 @@ d_eval_space_read(void *u, E_Space space, void *out, Rng1U64 range)
}break;
//- rjf: thread -> reading from thread register block
case CTRL_EntityKind_Thread:
case D_EntityKind_Thread:
{
Temp scratch = scratch_begin(0, 0);
CTRL_Unwind unwind = d_query_cached_unwind_from_thread(entity);
@@ -3624,8 +3626,7 @@ d_eval_space_write(void *u, E_Space space, void *in, Rng1U64 range)
switch(entity->kind)
{
//- rjf: default -> making commits to entity evaluation
default:{}break;
#if 0 // TODO(rjf): @msgs
#if 0
default:
{
Temp scratch = scratch_begin(0, 0);
@@ -3700,16 +3701,14 @@ d_key_from_eval_space_range(E_Space space, Rng1U64 range, B32 zero_terminated)
CTRL_Entity *entity = d_entity_from_eval_space(space);
switch(entity->kind)
{
default:{}break;
//- rjf: nil space -> filesystem key encoded inside of `space`
case CTRL_EntityKind_Null:
case D_EntityKind_Nil:
{
result = space;
}break;
//- rjf: process space -> query
case CTRL_EntityKind_Process:
case D_EntityKind_Process:
{
result = ctrl_hash_store_key_from_process_vaddr_range(entity->machine_id, entity->handle, range, zero_terminated);
}break;
@@ -3726,8 +3725,6 @@ d_whole_range_from_eval_space(E_Space space)
CTRL_Entity *entity = d_entity_from_eval_space(space);
switch(entity->kind)
{
default:{}break;
//- rjf: nil space -> filesystem key encoded inside of `space`
case CTRL_EntityKind_Null:
{
@@ -3745,8 +3742,6 @@ d_whole_range_from_eval_space(E_Space space)
result = r1u64(0, data.size);
hs_scope_close(scope);
}break;
//- rjf: process -> process address space
case CTRL_EntityKind_Process:
{
result = r1u64(0, 0x7FFFFFFFFFFFull);
@@ -5433,7 +5428,7 @@ d_file_path_from_eval_string(Arena *arena, String8 string)
E_Eval eval = e_eval_from_string(scratch.arena, string);
if(eval.expr->kind == E_ExprKind_LeafFilePath)
{
result = raw_from_escaped_string(arena, eval.expr->string);
result = d_cfg_raw_from_escaped_string(arena, eval.expr->string);
}
scratch_end(scratch);
}
@@ -5444,7 +5439,7 @@ internal String8
d_eval_string_from_file_path(Arena *arena, String8 string)
{
Temp scratch = scratch_begin(&arena, 1);
String8 string_escaped = escaped_from_raw_string(scratch.arena, string);
String8 string_escaped = d_cfg_escaped_from_raw_string(scratch.arena, string);
String8 result = push_str8f(arena, "file:\"%S\"", string_escaped);
scratch_end(scratch);
return result;
@@ -5579,7 +5574,6 @@ d_ctrl_targets_running(void)
return d_state->ctrl_is_running;
}
#if 0 // TODO(rjf): @msgs
//- rjf: config paths
internal String8
@@ -5595,11 +5589,9 @@ d_cfg_table(void)
{
return &d_state->cfg_table;
}
#endif
//- rjf: config serialization
#if 0 // TODO(rjf): @msgs
internal String8
d_cfg_escaped_from_raw_string(Arena *arena, String8 string)
{
@@ -5837,7 +5829,6 @@ d_cfg_push_write_string(D_CfgSrc src, String8 string)
{
str8_list_push(d_state->cfg_write_arenas[src], &d_state->cfg_write_data[src], push_str8_copy(d_state->cfg_write_arenas[src], string));
}
#endif
//- rjf: current path
@@ -5849,7 +5840,6 @@ d_current_path(void)
//- rjf: entity kind cache
#if 0 // TODO(rjf): @msgs
internal D_EntityList
d_query_cached_entity_list_with_kind(D_EntityKind kind)
{
@@ -5873,7 +5863,6 @@ d_query_cached_entity_list_with_kind(D_EntityKind kind)
ProfEnd();
return result;
}
#endif
//- rjf: active entity based queries
@@ -6168,8 +6157,6 @@ d_query_cached_member_map_from_dbgi_key_voff(DI_Key *dbgi_key, U64 voff)
//- rjf: top-level command dispatch
#if 0 // TODO(rjf): @msgs
internal void
d_push_cmd(D_CmdSpec *spec, D_CmdParams *params)
{
@@ -6256,8 +6243,6 @@ d_errorf(char *fmt, ...)
scratch_end(scratch);
}
#endif
////////////////////////////////
//~ rjf: Message Functions
@@ -6299,9 +6284,7 @@ d_init(CmdLine *cmdln, D_StateDeltaHistory *hist)
{
d_state->frame_arenas[idx] = arena_alloc();
}
#if 0 // TODO(rjf): @msgs
d_state->root_cmd_arena = arena_alloc();
#endif
d_state->output_log_key = hs_hash_from_data(str8_lit("df_output_log_key"));
d_state->entities_arena = arena_alloc(.reserve_size = GB(64), .commit_size = KB(64));
d_state->entities_root = &d_nil_entity;
@@ -6397,7 +6380,6 @@ d_init(CmdLine *cmdln, D_StateDeltaHistory *hist)
}
// rjf: set up config path state
#if 0 // TODO(rjf): @msgs
String8 cfg_src_paths[D_CfgSrc_COUNT] = {user_cfg_path, project_cfg_path};
for(D_CfgSrc src = (D_CfgSrc)0; src < D_CfgSrc_COUNT; src = (D_CfgSrc)(src+1))
{
@@ -6407,18 +6389,14 @@ d_init(CmdLine *cmdln, D_StateDeltaHistory *hist)
// rjf: set up config table arena
d_state->cfg_arena = arena_alloc();
#endif
scratch_end(scratch);
}
#if 0 // TODO(rjf): @msgs
// rjf: set up config write state
for(D_CfgSrc src = (D_CfgSrc)0; src < D_CfgSrc_COUNT; src = (D_CfgSrc)(src+1))
{
d_state->cfg_write_arenas[src] = arena_alloc();
}
#endif
// rjf: set up initial browse path
{
@@ -6431,7 +6409,6 @@ d_init(CmdLine *cmdln, D_StateDeltaHistory *hist)
}
}
#if 0 // TODO(rjf): @msgs
internal D_CmdList
d_gather_root_cmds(Arena *arena)
{
@@ -6442,10 +6419,9 @@ d_gather_root_cmds(Arena *arena)
}
return cmds;
}
#endif
internal void
d_tick(Arena *arena, DI_Scope *di_scope, F32 dt)
d_tick(Arena *arena, DI_Scope *di_scope, D_CmdList *cmds, F32 dt)
{
ProfBeginFunction();
d_state->frame_index += 1;
@@ -6573,7 +6549,8 @@ d_tick(Arena *arena, DI_Scope *di_scope, F32 dt)
if(event->cause == CTRL_EventCause_InterruptedByException ||
event->cause == CTRL_EventCause_InterruptedByTrap)
{
log_user_errorf("Interrupted by exception");
D_CmdParams params = d_cmd_params_zero();
d_cmd_list_push(arena, cmds, &params, d_cmd_spec_from_kind(D_CmdKind_Error));
}
// rjf: kill all entities which are marked to die on stop
@@ -6698,7 +6675,9 @@ d_tick(Arena *arena, DI_Scope *di_scope, F32 dt)
B32 do_initial_snap = (already_existing_processes.count == 1 && thread_idx_in_process == 0);
if(do_initial_snap)
{
d_msg(D_MsgKind_SelectThread, .machine_id = event->machine_id, .thread = event->entity);
D_CmdParams params = d_cmd_params_zero();
params.entity = d_handle_from_entity(entity);
d_cmd_list_push(arena, cmds, &params, d_cmd_spec_from_kind(D_CmdKind_SelectThread));
}
}break;
@@ -7504,7 +7483,6 @@ d_tick(Arena *arena, DI_Scope *di_scope, F32 dt)
scratch_end(scratch);
}
#if 0 // TODO(rjf): @msgs
//////////////////////////////
//- rjf: clear root level commands
//
@@ -7512,9 +7490,7 @@ d_tick(Arena *arena, DI_Scope *di_scope, F32 dt)
arena_clear(d_state->root_cmd_arena);
MemoryZeroStruct(&d_state->root_cmds);
}
#endif
#if 0 // TODO(rjf): @msgs
//////////////////////////////
//- rjf: autosave
//
@@ -7528,7 +7504,6 @@ d_tick(Arena *arena, DI_Scope *di_scope, F32 dt)
d_state->seconds_til_autosave = 5.f;
}
}
#endif
//////////////////////////////
//- rjf: process top-level commands
@@ -9121,7 +9096,7 @@ d_tick(Arena *arena, DI_Scope *di_scope, F32 dt)
CTRL_Entity *module = ctrl_module_from_process_vaddr(process, rip_vaddr);
U64 rip_voff = ctrl_voff_from_vaddr(module, rip_vaddr);
U64 tls_root_vaddr = ctrl_query_cached_tls_root_vaddr_from_thread(d_state->ctrl_entity_store, thread->machine_id, thread->handle);
CTRL_EntityList all_modules = ctrl_entity_list_from_kind(d_state->ctrl_entity_store, CTRL_EntityKind_Module);
CTRL_EntityList all_modules = ctrl_entity_list_from_kind(d_state->ctrl_entity_store, D_EntityKind_Module);
U64 eval_modules_count = Max(1, all_modules.count);
E_Module *eval_modules = push_array(arena, E_Module, eval_modules_count);
E_Module *eval_modules_primary = &eval_modules[0];
+2 -17
View File
@@ -764,7 +764,6 @@ struct D_CmdSpecInfoArray
////////////////////////////////
//~ rjf: Command Types
#if 0 // TODO(rjf): @msgs
typedef struct D_Cmd D_Cmd;
struct D_Cmd
{
@@ -787,7 +786,6 @@ struct D_CmdList
D_CmdNode *last;
U64 count;
};
#endif
////////////////////////////////
//~ rjf: Main State Caches
@@ -989,10 +987,9 @@ struct D_State
D_MsgList msgs;
// rjf: top-level command batch
#if 0 // TODO(rjf): @msgs
// TODO(rjf): @msgs
Arena *root_cmd_arena;
D_CmdList root_cmds;
#endif
// rjf: output log key
U128 output_log_key;
@@ -1069,7 +1066,6 @@ struct D_State
Arena *ctrl_stop_arena;
CTRL_Event ctrl_last_stop_event;
#if 0 // TODO(rjf): @msgs
// rjf: config reading state
Arena *cfg_path_arenas[D_CfgSrc_COUNT];
String8 cfg_paths[D_CfgSrc_COUNT];
@@ -1081,7 +1077,6 @@ struct D_State
B32 cfg_write_issued[D_CfgSrc_COUNT];
Arena *cfg_write_arenas[D_CfgSrc_COUNT];
String8List cfg_write_data[D_CfgSrc_COUNT];
#endif
// rjf: current path
Arena *current_path_arena;
@@ -1188,9 +1183,7 @@ internal D_CmdParams d_cmd_params_zero(void);
internal String8 d_cmd_params_apply_spec_query(Arena *arena, D_CmdParams *params, D_CmdSpec *spec, String8 query);
//- rjf: command lists
#if 0 // TODO(rjf): @msgs
internal void d_cmd_list_push(Arena *arena, D_CmdList *cmds, D_CmdParams *params, D_CmdSpec *spec);
#endif
//- rjf: string -> core layer command kind
internal D_CmdKind d_cmd_kind_from_string(String8 string);
@@ -1531,21 +1524,17 @@ internal D_RunKind d_ctrl_last_run_kind(void);
internal U64 d_ctrl_last_run_frame_idx(void);
internal B32 d_ctrl_targets_running(void);
#if 0 // TODO(rjf): @msgs
//- rjf: config paths
internal String8 d_cfg_path_from_src(D_CfgSrc src);
//- rjf: config state
internal D_CfgTable *d_cfg_table(void);
#endif
//- rjf: config serialization
#if 0 // TODO(rjf): @msgs
internal String8 d_cfg_escaped_from_raw_string(Arena *arena, String8 string);
internal String8 d_cfg_raw_from_escaped_string(Arena *arena, String8 string);
internal String8List d_cfg_strings_from_state(Arena *arena, String8 root_path, D_CfgSrc source);
internal void d_cfg_push_write_string(D_CfgSrc src, String8 string);
#endif
//- rjf: current path
internal String8 d_current_path(void);
@@ -1569,7 +1558,6 @@ internal E_String2NumMap *d_query_cached_locals_map_from_dbgi_key_voff(DI_Key *d
internal E_String2NumMap *d_query_cached_member_map_from_dbgi_key_voff(DI_Key *dbgi_key, U64 voff);
//- rjf: top-level command dispatch
#if 0 // TODO(rjf): @msgs
internal void d_push_cmd(D_CmdSpec *spec, D_CmdParams *params);
internal void d_error(String8 string);
internal void d_errorf(char *fmt, ...);
@@ -1581,7 +1569,6 @@ internal void d_errorf(char *fmt, ...);
.view = d_regs()->view, \
__VA_ARGS__ \
})
#endif
////////////////////////////////
//~ rjf: Message Functions
@@ -1599,9 +1586,7 @@ __VA_ARGS__\
//~ rjf: Main Layer Top-Level Calls
internal void d_init(CmdLine *cmdln, D_StateDeltaHistory *hist);
#if 0 // TODO(rjf): @msgs
internal D_CmdList d_gather_root_cmds(Arena *arena);
#endif
internal void d_tick(Arena *arena, DI_Scope *di_scope, F32 dt);
internal void d_tick(Arena *arena, DI_Scope *di_scope, D_CmdList *cmds, F32 dt);
#endif // DBG_ENGINE_CORE_H
+41 -1
View File
@@ -39,7 +39,47 @@ Rng1U64 d_reg_slot_range_table[29] =
String8 d_msg_kind_name_lower_table[36] =
{
{0},
str8_lit_comp("null"),
str8_lit_comp("launch_and_run"),
str8_lit_comp("launch_and_step_into"),
str8_lit_comp("kill"),
str8_lit_comp("kill_all"),
str8_lit_comp("attach"),
str8_lit_comp("detach"),
str8_lit_comp("continue"),
str8_lit_comp("step_into_inst"),
str8_lit_comp("step_over_inst"),
str8_lit_comp("step_into_line"),
str8_lit_comp("step_over_line"),
str8_lit_comp("step_out"),
str8_lit_comp("halt"),
str8_lit_comp("soft_halt_refresh"),
str8_lit_comp("set_thread_ip"),
str8_lit_comp("run_to_line"),
str8_lit_comp("run_to_address"),
str8_lit_comp("run"),
str8_lit_comp("restart"),
str8_lit_comp("step_into"),
str8_lit_comp("step_over"),
str8_lit_comp("select_thread"),
str8_lit_comp("select_unwind"),
str8_lit_comp("up_one_frame"),
str8_lit_comp("down_one_frame"),
str8_lit_comp("freeze_thread"),
str8_lit_comp("thaw_thread"),
str8_lit_comp("freeze_process"),
str8_lit_comp("thaw_process"),
str8_lit_comp("freeze_machine"),
str8_lit_comp("thaw_machine"),
str8_lit_comp("freeze_local_machine"),
str8_lit_comp("thaw_local_machine"),
str8_lit_comp("run_to_cursor"),
str8_lit_comp("set_next_statement"),
};
String8 d_msg_kind_name_display_table[36] =
{
str8_lit_comp("null"),
str8_lit_comp("launch_and_run"),
str8_lit_comp("launch_and_step_into"),
str8_lit_comp("kill"),
+4 -3
View File
@@ -10,9 +10,9 @@ typedef enum D_RegSlot
{
D_RegSlot_Null,
D_RegSlot_MachineID,
D_RegSlot_Process,
D_RegSlot_Module,
D_RegSlot_Thread,
D_RegSlot_process,
D_RegSlot_module,
D_RegSlot_thread,
D_RegSlot_Window,
D_RegSlot_Panel,
D_RegSlot_View,
@@ -536,6 +536,7 @@ struct {B32 *value_ptr; String8 name;} DEV_toggle_table[] =
C_LINKAGE_BEGIN
extern Rng1U64 d_reg_slot_range_table[29];
extern String8 d_msg_kind_name_lower_table[36];
extern String8 d_msg_kind_name_display_table[36];
extern Rng1U64 d_cmd_param_slot_range_table[24];
extern String8 d_entity_kind_display_string_table[28];
extern String8 d_entity_kind_name_lower_table[28];
+9 -74
View File
@@ -1,81 +1,14 @@
// Copyright (c) 2024 Epic Games Tools
// Licensed under the MIT license (https://opensource.org/license/mit/)
////////////////////////////////
//~ rjf: Registers Type Table
@table(c_type name_lower name)
DF_RegTable:
{
// rjf: entity info
{CTRL_MachineID machine_id MachineID }
{DMN_Handle process Process }
{DMN_Handle module Module }
{DMN_Handle thread Thread }
{DF_Handle window Window }
{DF_Handle panel Panel }
{DF_Handle view View }
{DF_Handle prev_view PrevView }
{DF_Handle dst_panel DstPanel }
{DF_Handle cfg_tree CfgTree }
{DF_HandleList cfg_tree_list CfgTreeList }
// rjf: frame selection
{U64 unwind_count UnwindCount }
{U64 inline_depth InlineDepth }
// rjf: code / address location info
{String8 file_path FilePath }
{TxtPt cursor Cursor }
{TxtPt mark Mark }
{U128 text_key TextKey }
{TXT_LangKind lang_kind LangKind }
{D_LineList lines Lines }
{DI_Key dbgi_key DbgiKey }
{Rng1U64 vaddr_range VaddrRange }
{Rng1U64 voff_range VoffRange }
// rjf: general parameters
{U32 pid PID }
{B32 force_confirm ForceConfirm }
{B32 prefer_disasm PreferDisasm }
{Dir2 dir2 Dir2 }
{String8 string String }
{`MD_Node *` params_tree ParamsTree }
{`OS_Event *` os_event OSEvent }
}
@enum DF_RegSlot:
{
Null,
@expand(DF_RegTable a) `$(a.name)`,
COUNT,
}
@struct DF_Regs:
{
@expand(DF_RegTable a) `$(a.c_type) $(a.name_lower)`
}
@data(Rng1U64) df_reg_slot_range_table:
{
`{0}`,
@expand(DF_RegTable a) `{OffsetOf(DF_Regs, $(a.name_lower)), OffsetOf(DF_Regs, $(a.name_lower)) + sizeof($(a.c_type))}`
}
@gen
{
`#define df_regs_lit_init_top \\`
@expand(DF_RegTable a) `.$(a.name_lower) = df_regs()->$(a.name_lower),\\`
``;
}
////////////////////////////////
//~ rjf: Message Tables
@table(name name_display name_lower show_in_ui show_in_ipc_docs q_slot q_ent_kind q_allow_files q_allow_folders q_keep_oi q_select_oi q_is_code q_required canonical_icon desc)
DF_MsgKindTable:
{
{Null "" null 0 0 Null Nil 0 0 0 0 0 0 Null ""}
//- rjf: meta
{Exit "" exit 0 0 Null Nil 0 0 0 0 0 0 Null ""}
{RunCommand "" run_command 0 0 Null Nil 0 0 0 0 0 0 Null ""}
@@ -270,16 +203,18 @@ DF_MsgKindTable:
@enum DF_MsgKind:
{
Null,
@expand(D_MsgKindTable a) `$(a.name)`,
@expand(DF_MsgKindTable a) `$(a.name)`,
COUNT
}
@data(DF_MsgKindInfo) df_msg_kind_info_table:
{
`{0}`,
@expand(DF_MsgKindTable a) `{str8_lit_comp("$(a.name_lower)"), str8_lit_comp("$(a.display_name)"), str8_lit_comp("$(a.desc)"), str8_lit_comp("$(a.search_tags)"), (($(a.show_in_ui)*DF_MsgKindFlag_ListInUI)|($(a.show_in_ipc_docs)*DF_MsgKindFlag_ListInIPCDocs)), {($(a.q_allow_files)*DF_MsgQueryFlag_AllowFiles)|($(a.q_allow_folders)*DF_MsgQueryFlag_AllowFolders)|($(a.q_keep_oi)*DF_MsgQueryFlag_KeepOldInput)|($(a.q_select_oi)*DF_MsgQueryFlag_SelectOldInput)|($(a.q_is_code)*DF_MsgQueryFlag_CodeInput)|($(a.q_required)*DF_MsgQueryFlag_Required), D_RegSlot_$(a.q_slot), D_EntityKind_$(a.q_ent_kind)}}`,
@expand(DF_MsgKindTable a) `{str8_lit_comp("$(a.name_lower)"), str8_lit_comp("$(a.display_name)"), str8_lit_comp("$(a.desc)"), str8_lit_comp("$(a.search_tags)"), (($(a.show_in_ui)*DF_MsgKindFlag_ListInUI)|($(a.show_in_ipc_docs)*DF_MsgKindFlag_ListInIPCDocs)), {($(a.q_allow_files)*DF_MsgQueryFlag_AllowFiles)|($(a.q_allow_folders)*DF_MsgQueryFlag_AllowFolders)|($(a.q_keep_oi)*DF_MsgQueryFlag_KeepOldInput)|($(a.q_select_oi)*DF_MsgQueryFlag_SelectOldInput)|($(a.q_is_code)*DF_MsgQueryFlag_CodeInput)|($(a.q_required)*DF_MsgQueryFlag_Required), D_RegSlot_$(a.q_slot), D_EntityKind_$(a.q_ent_kind)}}`
}
@data(DF_MsgKindInfo) df_d_msg_kind_info_table:
{
@expand(D_MsgKindTable a) `{str8_lit_comp("$(a.name_lower)"), str8_lit_comp("$(a.display_name)"), str8_lit_comp("$(a.desc)"), str8_lit_comp("$(a.search_tags)"), (($(a.show_in_ui)*DF_MsgKindFlag_ListInUI)|($(a.show_in_ipc_docs)*DF_MsgKindFlag_ListInIPCDocs)), {($(a.q_allow_files)*DF_MsgQueryFlag_AllowFiles)|($(a.q_allow_folders)*DF_MsgQueryFlag_AllowFolders)|($(a.q_keep_oi)*DF_MsgQueryFlag_KeepOldInput)|($(a.q_select_oi)*DF_MsgQueryFlag_SelectOldInput)|($(a.q_is_code)*DF_MsgQueryFlag_CodeInput)|($(a.q_required)*DF_MsgQueryFlag_Required), D_RegSlot_$(a.q_slot), D_EntityKind_$(a.q_ent_kind)}}`
}
////////////////////////////////
@@ -595,7 +530,7 @@ DF_ViewTable:
{ SymbolLister "symbol_lister" "Symbols" Null 0 0 0 0 0 0 0 "" }
//- rjf: entity editors
// TODO(rjf): @msgs { Target "target" "Target" Target 1 0 0 0 0 0 0 "" }
{ Target "target" "Target" Target 1 0 0 0 0 0 0 "" }
{ Targets "targets" "Targets" Target 0 0 1 1 0 1 1 "Displays a list of all targets, as well as controls for enabling, disabling, launching, editing, or deleting each target. For more information on targets, read the `Targets` section." }
{ FilePathMap "file_path_map" "File Path Map" FileOutline 0 0 1 0 0 0 1 "Displays a table of *path maps*. Each path map is a pair of file or folder paths, one being a 'source' path, and one being a 'destination' path. These pairs are used by the debugger when automatically searching for specific files - for instance, when attempting to snap to a source code location specified by debug info. If debug info refers to a path on the machine on which a target executable was originally built, but that path is not valid on the debugger machine, but some alternative path exists, then path maps may be used to redirect the debugger from the debug info's specified paths to the associated appropriate debugger machine file paths." }
{ AutoViewRules "auto_view_rules" "Auto View Rules" Binoculars 0 0 1 0 0 0 1 "Displays a table of *auto view rules*. Each *auto view rule* is a pair, with one element being a type, and the other being a view rule, which should be automatically applied to expressions of that type, when possible." }
File diff suppressed because it is too large Load Diff
+19 -132
View File
@@ -16,30 +16,6 @@ typedef enum DF_CfgSlot
}
DF_CfgSlot;
////////////////////////////////
//~ rjf: Handle Types
typedef struct DF_Handle DF_Handle;
struct DF_Handle
{
U64 u64[4];
};
typedef struct DF_HandleNode DF_HandleNode;
struct DF_HandleNode
{
DF_HandleNode *next;
DF_Handle v;
};
typedef struct DF_HandleList DF_HandleList;
struct DF_HandleList
{
DF_HandleNode *first;
DF_HandleNode *last;
U64 count;
};
////////////////////////////////
//~ rjf: Binding Types
@@ -106,17 +82,17 @@ struct DF_SettingVal
typedef struct DF_View DF_View;
#define DF_VIEW_SETUP_FUNCTION_SIG(name) void name(void)
#define DF_VIEW_SETUP_FUNCTION_SIG(name) void name(DF_View *view, MD_Node *params, String8 string)
#define DF_VIEW_SETUP_FUNCTION_NAME(name) df_view_setup_##name
#define DF_VIEW_SETUP_FUNCTION_DEF(name) internal DF_VIEW_SETUP_FUNCTION_SIG(DF_VIEW_SETUP_FUNCTION_NAME(name))
typedef DF_VIEW_SETUP_FUNCTION_SIG(DF_ViewSetupFunctionType);
#define DF_VIEW_CMD_FUNCTION_SIG(name) void name(void)
#define DF_VIEW_CMD_FUNCTION_SIG(name) void name(DF_View *view, MD_Node *params, String8 string, D_CmdList *cmds)
#define DF_VIEW_CMD_FUNCTION_NAME(name) df_view_cmds_##name
#define DF_VIEW_CMD_FUNCTION_DEF(name) internal DF_VIEW_CMD_FUNCTION_SIG(DF_VIEW_CMD_FUNCTION_NAME(name))
typedef DF_VIEW_CMD_FUNCTION_SIG(DF_ViewCmdFunctionType);
#define DF_VIEW_UI_FUNCTION_SIG(name) void name(Rng2F32 rect)
#define DF_VIEW_UI_FUNCTION_SIG(name) void name(DF_View *view, MD_Node *params, String8 string, Rng2F32 rect)
#define DF_VIEW_UI_FUNCTION_NAME(name) df_view_ui_##name
#define DF_VIEW_UI_FUNCTION_DEF(name) internal DF_VIEW_UI_FUNCTION_SIG(DF_VIEW_UI_FUNCTION_NAME(name))
typedef DF_VIEW_UI_FUNCTION_SIG(DF_ViewUIFunctionType);
@@ -218,9 +194,6 @@ struct DF_View
DF_View *order_next;
DF_View *order_prev;
// rjf: cfg tree handle
DF_Handle handle;
// rjf: transient view children
DF_View *first_transient;
DF_View *last_transient;
@@ -270,21 +243,6 @@ struct DF_View
U8 query_buffer[KB(4)];
};
typedef struct DF_ViewNode DF_ViewNode;
struct DF_ViewNode
{
DF_ViewNode *next;
DF_ViewNode *prev;
DF_View v;
};
typedef struct DF_ViewSlot DF_ViewSlot;
struct DF_ViewSlot
{
DF_ViewNode *first;
DF_ViewNode *last;
};
////////////////////////////////
//~ rjf: Panel Types
@@ -342,8 +300,9 @@ DF_DragDropState;
typedef struct DF_DragDropPayload DF_DragDropPayload;
struct DF_DragDropPayload
{
UI_Key key__;
DF_Handle cfg_tree;
UI_Key key;
D_Handle panel;
D_Handle view;
D_Handle entity;
TxtPt text_point;
};
@@ -465,7 +424,7 @@ typedef struct DF_Msg DF_Msg;
struct DF_Msg
{
DF_MsgKind kind;
DF_Regs *regs;
D_Regs *regs;
};
typedef struct DF_MsgNode DF_MsgNode;
@@ -584,7 +543,6 @@ struct DF_Window
// rjf: links & metadata
DF_Window *next;
DF_Window *prev;
DF_Handle handle;
U64 first_frame_touched;
U64 last_frame_touched;
U64 gen;
@@ -593,6 +551,7 @@ struct DF_Window
// rjf: top-level info & handles
Arena *arena;
String8 cfg_key;
OS_Handle os;
R_Handle r;
UI_State *ui;
@@ -629,7 +588,8 @@ struct DF_Window
TxtPt entity_ctx_menu_input_mark;
// rjf: tab context menu state
DF_Handle tab_ctx_menu_view;
D_Handle tab_ctx_menu_panel;
D_Handle tab_ctx_menu_view;
U8 tab_ctx_menu_input_buffer[1024];
U64 tab_ctx_menu_input_size;
TxtPt tab_ctx_menu_input_cursor;
@@ -651,7 +611,7 @@ struct DF_Window
// rjf: query view stack
Arena *query_msg_arena;
DF_MsgKind query_msg_kind;
String8 query_msg_name;
DF_MsgQuery query_msg_query;
U64 query_msg_regs_mask[(D_RegSlot_COUNT+63)/64];
D_Regs *query_msg_regs;
@@ -714,16 +674,6 @@ struct DF_WindowSlot
DF_WindowNode *last;
};
////////////////////////////////
//~ rjf: Context Register Types
typedef struct DF_RegsNode DF_RegsNode;
struct DF_RegsNode
{
DF_RegsNode *next;
DF_Regs v;
};
////////////////////////////////
//~ rjf: Main Per-Process Graphical State
@@ -734,9 +684,6 @@ struct DF_State
B32 quit;
U64 frame_index;
// rjf: frame arenas
Arena *frame_arenas[2];
// rjf: icon texture
R_Handle icon_texture;
@@ -750,13 +697,8 @@ struct DF_State
Arena *cfg_root_arena;
MD_Node *cfg_root;
Arena *cfg_slot_arenas[DF_CfgSlot_COUNT];
U64 cfg_slot_gens[DF_CfgSlot_COUNT];
MD_Node *cfg_slot_roots[DF_CfgSlot_COUNT];
// rjf: interaction registers
DF_RegsNode base_regs;
DF_RegsNode *top_regs;
// rjf: messages
Arena *msgs_arena;
DF_MsgList msgs;
@@ -765,10 +707,6 @@ struct DF_State
U64 window_slots_count;
DF_WindowSlot *window_slots;
// rjf: view state cache
U64 view_slots_count;
DF_ViewSlot *view_slots;
// rjf: key map table
Arena *key_map_arena;
U64 key_map_table_size;
@@ -791,6 +729,7 @@ struct DF_State
B32 confirm_active;
F32 confirm_t;
Arena *confirm_arena;
D_CmdList confirm_cmds;
DF_Msg confirm_msg;
String8 confirm_title;
String8 confirm_desc;
@@ -869,15 +808,12 @@ read_only global DF_ViewRuleSpec df_nil_view_rule_spec =
&df_nil_view_rule_spec,
};
read_only global DF_Window df_nil_window = {0};
read_only global DF_View df_nil_view =
{
&df_nil_view,
&df_nil_view,
&df_nil_view,
&df_nil_view,
{0},
&df_nil_view,
&df_nil_view,
&df_nil_view_spec,
@@ -903,20 +839,6 @@ global D_Handle df_last_drag_drop_prev_tab = {0};
internal U64 df_hash_from_seed_string(U64 seed, String8 string);
internal U64 df_hash_from_string(String8 string);
////////////////////////////////
//~ rjf: Handle Type Functions
internal DF_Handle df_handle_zero(void);
internal B32 df_handle_match(DF_Handle a, DF_Handle b);
internal void df_handle_list_push(Arena *arena, DF_HandleList *list, DF_Handle v);
internal DF_HandleList df_handle_list_copy(Arena *arena, DF_HandleList *src);
////////////////////////////////
//~ rjf: Register Type Functions
internal void df_regs_copy_contents(Arena *arena, DF_Regs *dst, DF_Regs *src);
internal DF_Regs *df_regs_copy(Arena *arena, DF_Regs *src);
////////////////////////////////
//~ rjf: View Type Functions
@@ -959,7 +881,7 @@ internal DF_View *df_selected_tab_from_panel(DF_Panel *panel);
//- rjf: icons & display strings
internal DF_IconKind df_icon_kind_from_view(DF_View *view);
internal DR_FancyStringList df_title_fstrs_from_view_spec_query(Arena *arena, DF_ViewSpec *spec, String8 query, Vec4F32 primary_color, Vec4F32 secondary_color, F32 size);
internal DR_FancyStringList df_title_fstrs_from_view(Arena *arena, DF_View *view, Vec4F32 primary_color, Vec4F32 secondary_color, F32 size);
////////////////////////////////
//~ rjf: Window Type Functions
@@ -1008,9 +930,6 @@ internal DF_ViewRuleSpec *df_view_rule_spec_from_string(String8 string);
////////////////////////////////
//~ rjf: View State Functions
//- rjf: cfg tree -> view
internal DF_View *df_view_from_cfg_tree(MD_Node *view_cfg);
//- rjf: allocation/releasing
internal DF_View *df_view_alloc(void);
internal void df_view_release(DF_View *view);
@@ -1047,13 +966,13 @@ internal void df_panel_release_all_views(DF_Panel *panel);
////////////////////////////////
//~ rjf: Window State Functions
internal DF_Window *df_window_from_cfg_tree(MD_Node *window_cfg);
internal DF_Window *df_window_from_cfg_key(String8 cfg_key);
internal DF_Window *df_window_open(Vec2F32 size, OS_Handle preferred_monitor, D_CfgSrc cfg_src);
internal DF_Window *df_window_from_os_handle(OS_Handle os);
internal void df_window_frame(Arena *arena, MD_Node *window_cfg);
internal void df_window_update_and_render(Arena *arena, DF_Window *ws, D_CmdList *cmds);
////////////////////////////////
//~ rjf: Eval Viz
@@ -1084,18 +1003,9 @@ internal void df_set_autocomp_lister_query(UI_Key root_key, DF_AutoCompListerPar
internal void df_set_search_string(String8 string);
internal String8 df_push_search_string(Arena *arena);
////////////////////////////////
//~ rjf: Main State Accessors
internal Arena *df_frame_arena(void);
////////////////////////////////
//~ rjf: Colors, Fonts, Config
//- rjf: handle <-> cfg tree
internal DF_Handle df_handle_from_cfg_tree(MD_Node *cfg);
internal MD_Node *df_cfg_tree_from_handle(DF_Handle handle);
//- rjf: string <-> cfg tree
internal MD_Node *df_cfg_tree_from_key(String8 string);
internal String8 df_key_from_cfg_tree(Arena *arena, MD_Node *node);
@@ -1104,15 +1014,8 @@ internal String8 df_key_from_cfg_tree(Arena *arena, MD_Node *node);
internal DF_CfgSlot df_cfg_slot_from_tree(MD_Node *node);
internal MD_Node *df_cfg_tree_store(MD_Node *parent, MD_Node *replace_node, String8 string);
internal MD_Node *df_cfg_tree_storef(MD_Node *parent, MD_Node *replace_node, char *fmt, ...);
internal void df_cfg_tree_set_string(MD_Node *node, String8 string);
internal void df_cfg_tree_set_stringf(MD_Node *node, char *fmt, ...);
#define df_cfg_tree_set_key(parent, key, val) df_cfg_tree_store((parent), md_child_from_string((parent), (key), 0), (val))
#define df_cfg_tree_set_keyf(parent, key, fmt, ...) df_cfg_tree_storef((parent), md_child_from_string((parent), (key), 0), (fmt), __VA_ARGS__)
#define df_cfg_tree_remove(node) df_cfg_tree_store((node)->parent, (node), str8_zero())
//- rjf: config tree lookups
internal Rng2F32 df_target_rect_from_panel_child_cfg(Rng2F32 parent_rect, Axis2 parent_split_axis, MD_Node *panel);
internal Rng2F32 df_target_rect_from_panel_cfg(Rng2F32 root_rect, MD_Node *panel);
//- rjf: keybindings
internal void df_clear_bindings(void);
@@ -1138,10 +1041,8 @@ internal FNT_RasterFlags df_raster_flags_from_slot(DF_FontSlot slot);
internal DF_SettingVal df_setting_val_from_code(DF_SettingCode code);
//- rjf: config serialization
#if 0 // TODO(rjf): @msgs
internal int df_qsort_compare__cfg_string_bindings(DF_StringBindingPair *a, DF_StringBindingPair *b);
internal String8List df_cfg_strings_from_state(Arena *arena, String8 root_path, D_CfgSrc source);
#endif
////////////////////////////////
//~ rjf: Process Control Info Stringification
@@ -1154,15 +1055,6 @@ internal String8 df_stop_explanation_string_icon_from_ctrl_event(Arena *arena, C
internal void df_request_frame(void);
////////////////////////////////
//~ rjf: Registers Functions
internal DF_Regs *df_regs(void);
internal DF_Regs *df_base_regs(void);
internal DF_Regs *df_push_regs(void);
internal DF_Regs *df_pop_regs(void);
#define DF_RegsScope DeferLoop(df_push_regs(), df_pop_regs())
////////////////////////////////
//~ rjf: Message Functions
@@ -1170,23 +1062,18 @@ internal DF_Regs *df_pop_regs(void);
internal DF_MsgKind df_msg_kind_from_string(String8 string);
//- rjf: register setting helpers
internal void df_regs_set_window(MD_Node *cfg_tree);
internal void df_regs_set_panel(MD_Node *cfg_tree);
internal void df_regs_set_view(MD_Node *cfg_tree);
internal void df_regs_set_window(DF_Window *window);
internal void df_regs_set_from_query_slot_string(D_RegSlot slot, String8 string);
//- rjf: message pushing
internal void df_msg_(DF_MsgKind kind, DF_Regs *regs);
internal void df_msg_(DF_MsgKind kind, D_Regs *regs);
#define df_msg(kind, ...) df_msg_((kind),\
&(DF_Regs)\
&(D_Regs)\
{\
df_regs_lit_init_top \
d_regs_lit_init_top \
__VA_ARGS__\
})
//- rjf: message iteration
internal B32 df_next_msg(DF_Msg **msg);
////////////////////////////////
//~ rjf: Main Layer Top-Level Calls
+44 -21
View File
@@ -19,7 +19,7 @@ df_code_view_init(DF_CodeViewState *cv, DF_View *view)
}
internal void
df_code_view_cmds(DF_View *view, DF_CodeViewState *cv, String8 text_data, TXT_TextInfo *text_info, DASM_LineArray *dasm_lines, Rng1U64 dasm_vaddr_range, DI_Key dasm_dbgi_key)
df_code_view_cmds(DF_View *view, DF_CodeViewState *cv, D_CmdList *cmds, String8 text_data, TXT_TextInfo *text_info, DASM_LineArray *dasm_lines, Rng1U64 dasm_vaddr_range, DI_Key dasm_dbgi_key)
{
for(D_CmdNode *n = cmds->first; n != 0; n = n->next)
{
@@ -4626,8 +4626,6 @@ DF_VIEW_UI_FUNCTION_DEF(symbol_lister)
////////////////////////////////
//~ rjf: target @view_hook_impl
#if 0 // TODO(rjf): @msgs
typedef struct DF_TargetViewState DF_TargetViewState;
struct DF_TargetViewState
{
@@ -4962,8 +4960,6 @@ DF_VIEW_UI_FUNCTION_DEF(target)
ProfEnd();
}
#endif
////////////////////////////////
//~ rjf: targets @view_hook_impl
@@ -5119,12 +5115,6 @@ DF_VIEW_UI_FUNCTION_DEF(targets)
////////////////////////////////
//~ rjf: file_path_map @view_hook_impl
DF_VIEW_SETUP_FUNCTION_DEF(file_path_map){}
DF_VIEW_CMD_FUNCTION_DEF(file_path_map){}
DF_VIEW_UI_FUNCTION_DEF(file_path_map){}
#if 0 // TODO(rjf): @msgs
typedef struct DF_FilePathMapViewState DF_FilePathMapViewState;
struct DF_FilePathMapViewState
{
@@ -5464,8 +5454,6 @@ DF_VIEW_UI_FUNCTION_DEF(file_path_map)
ProfEnd();
}
#endif
////////////////////////////////
//~ rjf: auto_view_rules @view_hook_impl
@@ -5761,12 +5749,6 @@ DF_VIEW_UI_FUNCTION_DEF(call_stack)
////////////////////////////////
//~ rjf: modules @view_hook_impl
DF_VIEW_SETUP_FUNCTION_DEF(modules){}
DF_VIEW_CMD_FUNCTION_DEF(modules){}
DF_VIEW_UI_FUNCTION_DEF(modules){}
#if 0 // TODO(rjf): @msgs
typedef struct DF_ModulesViewState DF_ModulesViewState;
struct DF_ModulesViewState
{
@@ -6101,7 +6083,6 @@ DF_VIEW_UI_FUNCTION_DEF(modules)
scratch_end(scratch);
ProfEnd();
}
#endif
////////////////////////////////
//~ rjf: watch @view_hook_impl
@@ -6252,10 +6233,52 @@ DF_VIEW_UI_FUNCTION_DEF(procedures)
////////////////////////////////
//~ rjf: pending_file @view_hook_impl
DF_VIEW_SETUP_FUNCTION_DEF(pending_file){}
typedef struct DF_PendingFileViewState DF_PendingFileViewState;
struct DF_PendingFileViewState
{
Arena *deferred_cmd_arena;
D_CmdList deferred_cmds;
};
DF_VIEW_SETUP_FUNCTION_DEF(pending_file)
{
DF_PendingFileViewState *pves = df_view_user_state(view, DF_PendingFileViewState);
pves->deferred_cmd_arena = df_view_push_arena_ext(view);
}
DF_VIEW_CMD_FUNCTION_DEF(pending_file)
{
Temp scratch = scratch_begin(0, 0);
DF_PendingFileViewState *pves = df_view_user_state(view, DF_PendingFileViewState);
//- rjf: process commands
for(D_CmdNode *n = cmds->first; n != 0; n = n->next)
{
D_Cmd *cmd = &n->cmd;
// rjf: mismatched window/panel => skip
if(!d_handle_match(d_regs()->window, cmd->params.window) ||
!d_handle_match(d_regs()->panel, cmd->params.panel))
{
continue;
}
// rjf: process
D_CmdKind core_cmd_kind = d_cmd_kind_from_string(cmd->spec->info.string);
switch(core_cmd_kind)
{
default:break;
// rjf: gather deferred commands to redispatch when entity is ready
case D_CmdKind_GoToLine:
case D_CmdKind_GoToAddress:
case D_CmdKind_CenterCursor:
case D_CmdKind_ContainCursor:
{
d_cmd_list_push(pves->deferred_cmd_arena, &pves->deferred_cmds, &cmd->params, cmd->spec);
}break;
}
}
//- rjf: determine if file is ready, and which viewer to use
String8 file_path = d_file_path_from_eval_string(scratch.arena, str8(view->query_buffer, view->query_string_size));
+1 -1
View File
@@ -155,7 +155,7 @@ struct DF_WatchViewState
//~ rjf: Code View Functions
internal void df_code_view_init(DF_CodeViewState *cv, DF_View *view);
internal void df_code_view_cmds(DF_View *view, DF_CodeViewState *cv, String8 text_data, TXT_TextInfo *text_info, DASM_LineArray *dasm_lines, Rng1U64 dasm_vaddr_range, DI_Key dasm_dbgi_key);
internal void df_code_view_cmds(DF_View *view, DF_CodeViewState *cv, D_CmdList *cmds, String8 text_data, TXT_TextInfo *text_info, DASM_LineArray *dasm_lines, Rng1U64 dasm_vaddr_range, DI_Key dasm_dbgi_key);
internal DF_CodeViewBuildResult df_code_view_build(Arena *arena, DF_View *view, DF_CodeViewState *cv, DF_CodeViewBuildFlags flags, Rng2F32 rect, String8 text_data, TXT_TextInfo *text_info, DASM_LineArray *dasm_lines, Rng1U64 dasm_vaddr_range, DI_Key dasm_dbgi_key);
////////////////////////////////
+45 -37
View File
@@ -4,43 +4,9 @@
//- GENERATED CODE
C_LINKAGE_BEGIN
Rng1U64 df_reg_slot_range_table[30] =
{
{0},
{OffsetOf(DF_Regs, machine_id), OffsetOf(DF_Regs, machine_id) + sizeof(CTRL_MachineID)},
{OffsetOf(DF_Regs, process), OffsetOf(DF_Regs, process) + sizeof(DMN_Handle)},
{OffsetOf(DF_Regs, module), OffsetOf(DF_Regs, module) + sizeof(DMN_Handle)},
{OffsetOf(DF_Regs, thread), OffsetOf(DF_Regs, thread) + sizeof(DMN_Handle)},
{OffsetOf(DF_Regs, window), OffsetOf(DF_Regs, window) + sizeof(DF_Handle)},
{OffsetOf(DF_Regs, panel), OffsetOf(DF_Regs, panel) + sizeof(DF_Handle)},
{OffsetOf(DF_Regs, view), OffsetOf(DF_Regs, view) + sizeof(DF_Handle)},
{OffsetOf(DF_Regs, prev_view), OffsetOf(DF_Regs, prev_view) + sizeof(DF_Handle)},
{OffsetOf(DF_Regs, dst_panel), OffsetOf(DF_Regs, dst_panel) + sizeof(DF_Handle)},
{OffsetOf(DF_Regs, cfg_tree), OffsetOf(DF_Regs, cfg_tree) + sizeof(DF_Handle)},
{OffsetOf(DF_Regs, cfg_tree_list), OffsetOf(DF_Regs, cfg_tree_list) + sizeof(DF_HandleList)},
{OffsetOf(DF_Regs, unwind_count), OffsetOf(DF_Regs, unwind_count) + sizeof(U64)},
{OffsetOf(DF_Regs, inline_depth), OffsetOf(DF_Regs, inline_depth) + sizeof(U64)},
{OffsetOf(DF_Regs, file_path), OffsetOf(DF_Regs, file_path) + sizeof(String8)},
{OffsetOf(DF_Regs, cursor), OffsetOf(DF_Regs, cursor) + sizeof(TxtPt)},
{OffsetOf(DF_Regs, mark), OffsetOf(DF_Regs, mark) + sizeof(TxtPt)},
{OffsetOf(DF_Regs, text_key), OffsetOf(DF_Regs, text_key) + sizeof(U128)},
{OffsetOf(DF_Regs, lang_kind), OffsetOf(DF_Regs, lang_kind) + sizeof(TXT_LangKind)},
{OffsetOf(DF_Regs, lines), OffsetOf(DF_Regs, lines) + sizeof(D_LineList)},
{OffsetOf(DF_Regs, dbgi_key), OffsetOf(DF_Regs, dbgi_key) + sizeof(DI_Key)},
{OffsetOf(DF_Regs, vaddr_range), OffsetOf(DF_Regs, vaddr_range) + sizeof(Rng1U64)},
{OffsetOf(DF_Regs, voff_range), OffsetOf(DF_Regs, voff_range) + sizeof(Rng1U64)},
{OffsetOf(DF_Regs, pid), OffsetOf(DF_Regs, pid) + sizeof(U32)},
{OffsetOf(DF_Regs, force_confirm), OffsetOf(DF_Regs, force_confirm) + sizeof(B32)},
{OffsetOf(DF_Regs, prefer_disasm), OffsetOf(DF_Regs, prefer_disasm) + sizeof(B32)},
{OffsetOf(DF_Regs, dir2), OffsetOf(DF_Regs, dir2) + sizeof(Dir2)},
{OffsetOf(DF_Regs, string), OffsetOf(DF_Regs, string) + sizeof(String8)},
{OffsetOf(DF_Regs, params_tree), OffsetOf(DF_Regs, params_tree) + sizeof(MD_Node *)},
{OffsetOf(DF_Regs, os_event), OffsetOf(DF_Regs, os_event) + sizeof(OS_Event *)},
};
DF_MsgKindInfo df_msg_kind_info_table[134] =
{
{0},
{str8_lit_comp("null"), str8_lit_comp("Null"), str8_lit_comp(""), str8_lit_comp("Null"), ((0*DF_MsgKindFlag_ListInUI)|(0*DF_MsgKindFlag_ListInIPCDocs)), {(0*DF_MsgQueryFlag_AllowFiles)|(0*DF_MsgQueryFlag_AllowFolders)|(0*DF_MsgQueryFlag_KeepOldInput)|(0*DF_MsgQueryFlag_SelectOldInput)|(0*DF_MsgQueryFlag_CodeInput)|(0*DF_MsgQueryFlag_Required), D_RegSlot_Null, D_EntityKind_Nil}},
{str8_lit_comp("exit"), str8_lit_comp("Exit"), str8_lit_comp(""), str8_lit_comp("Exit"), ((0*DF_MsgKindFlag_ListInUI)|(0*DF_MsgKindFlag_ListInIPCDocs)), {(0*DF_MsgQueryFlag_AllowFiles)|(0*DF_MsgQueryFlag_AllowFolders)|(0*DF_MsgQueryFlag_KeepOldInput)|(0*DF_MsgQueryFlag_SelectOldInput)|(0*DF_MsgQueryFlag_CodeInput)|(0*DF_MsgQueryFlag_Required), D_RegSlot_Null, D_EntityKind_Nil}},
{str8_lit_comp("run_command"), str8_lit_comp("RunCommand"), str8_lit_comp(""), str8_lit_comp("RunCommand"), ((0*DF_MsgKindFlag_ListInUI)|(0*DF_MsgKindFlag_ListInIPCDocs)), {(0*DF_MsgQueryFlag_AllowFiles)|(0*DF_MsgQueryFlag_AllowFolders)|(0*DF_MsgQueryFlag_KeepOldInput)|(0*DF_MsgQueryFlag_SelectOldInput)|(0*DF_MsgQueryFlag_CodeInput)|(0*DF_MsgQueryFlag_Required), D_RegSlot_Null, D_EntityKind_Nil}},
{str8_lit_comp("toggle_dev_menu"), str8_lit_comp("ToggleDevMenu"), str8_lit_comp(""), str8_lit_comp("ToggleDevMenu"), ((0*DF_MsgKindFlag_ListInUI)|(0*DF_MsgKindFlag_ListInIPCDocs)), {(0*DF_MsgQueryFlag_AllowFiles)|(0*DF_MsgQueryFlag_AllowFolders)|(0*DF_MsgQueryFlag_KeepOldInput)|(0*DF_MsgQueryFlag_SelectOldInput)|(0*DF_MsgQueryFlag_CodeInput)|(0*DF_MsgQueryFlag_Required), D_RegSlot_Null, D_EntityKind_Nil}},
@@ -176,6 +142,46 @@ DF_MsgKindInfo df_msg_kind_info_table[134] =
{str8_lit_comp("os_event"), str8_lit_comp("OSEvent"), str8_lit_comp(""), str8_lit_comp("OSEvent"), ((0*DF_MsgKindFlag_ListInUI)|(0*DF_MsgKindFlag_ListInIPCDocs)), {(0*DF_MsgQueryFlag_AllowFiles)|(0*DF_MsgQueryFlag_AllowFolders)|(0*DF_MsgQueryFlag_KeepOldInput)|(0*DF_MsgQueryFlag_SelectOldInput)|(0*DF_MsgQueryFlag_CodeInput)|(0*DF_MsgQueryFlag_Required), D_RegSlot_Null, D_EntityKind_Nil}},
};
DF_MsgKindInfo df_d_msg_kind_info_table[36] =
{
{str8_lit_comp("null"), str8_lit_comp("Null"), str8_lit_comp(""), str8_lit_comp("Null"), ((0*DF_MsgKindFlag_ListInUI)|(0*DF_MsgKindFlag_ListInIPCDocs)), {(0*DF_MsgQueryFlag_AllowFiles)|(0*DF_MsgQueryFlag_AllowFolders)|(0*DF_MsgQueryFlag_KeepOldInput)|(0*DF_MsgQueryFlag_SelectOldInput)|(0*DF_MsgQueryFlag_CodeInput)|(0*DF_MsgQueryFlag_Required), D_RegSlot_Null, D_EntityKind_Nil}},
{str8_lit_comp("launch_and_run"), str8_lit_comp("LaunchAndRun"), str8_lit_comp(""), str8_lit_comp("LaunchAndRun"), ((0*DF_MsgKindFlag_ListInUI)|(0*DF_MsgKindFlag_ListInIPCDocs)), {(0*DF_MsgQueryFlag_AllowFiles)|(0*DF_MsgQueryFlag_AllowFolders)|(0*DF_MsgQueryFlag_KeepOldInput)|(0*DF_MsgQueryFlag_SelectOldInput)|(0*DF_MsgQueryFlag_CodeInput)|(0*DF_MsgQueryFlag_Required), D_RegSlot_Null, D_EntityKind_Nil}},
{str8_lit_comp("launch_and_step_into"), str8_lit_comp("LaunchAndStepInto"), str8_lit_comp(""), str8_lit_comp("LaunchAndStepInto"), ((0*DF_MsgKindFlag_ListInUI)|(0*DF_MsgKindFlag_ListInIPCDocs)), {(0*DF_MsgQueryFlag_AllowFiles)|(0*DF_MsgQueryFlag_AllowFolders)|(0*DF_MsgQueryFlag_KeepOldInput)|(0*DF_MsgQueryFlag_SelectOldInput)|(0*DF_MsgQueryFlag_CodeInput)|(0*DF_MsgQueryFlag_Required), D_RegSlot_Null, D_EntityKind_Nil}},
{str8_lit_comp("kill"), str8_lit_comp("Kill"), str8_lit_comp(""), str8_lit_comp("Kill"), ((0*DF_MsgKindFlag_ListInUI)|(0*DF_MsgKindFlag_ListInIPCDocs)), {(0*DF_MsgQueryFlag_AllowFiles)|(0*DF_MsgQueryFlag_AllowFolders)|(0*DF_MsgQueryFlag_KeepOldInput)|(0*DF_MsgQueryFlag_SelectOldInput)|(0*DF_MsgQueryFlag_CodeInput)|(0*DF_MsgQueryFlag_Required), D_RegSlot_Null, D_EntityKind_Nil}},
{str8_lit_comp("kill_all"), str8_lit_comp("KillAll"), str8_lit_comp(""), str8_lit_comp("KillAll"), ((0*DF_MsgKindFlag_ListInUI)|(0*DF_MsgKindFlag_ListInIPCDocs)), {(0*DF_MsgQueryFlag_AllowFiles)|(0*DF_MsgQueryFlag_AllowFolders)|(0*DF_MsgQueryFlag_KeepOldInput)|(0*DF_MsgQueryFlag_SelectOldInput)|(0*DF_MsgQueryFlag_CodeInput)|(0*DF_MsgQueryFlag_Required), D_RegSlot_Null, D_EntityKind_Nil}},
{str8_lit_comp("attach"), str8_lit_comp("Attach"), str8_lit_comp(""), str8_lit_comp("Attach"), ((0*DF_MsgKindFlag_ListInUI)|(0*DF_MsgKindFlag_ListInIPCDocs)), {(0*DF_MsgQueryFlag_AllowFiles)|(0*DF_MsgQueryFlag_AllowFolders)|(0*DF_MsgQueryFlag_KeepOldInput)|(0*DF_MsgQueryFlag_SelectOldInput)|(0*DF_MsgQueryFlag_CodeInput)|(0*DF_MsgQueryFlag_Required), D_RegSlot_Null, D_EntityKind_Nil}},
{str8_lit_comp("detach"), str8_lit_comp("Detach"), str8_lit_comp(""), str8_lit_comp("Detach"), ((0*DF_MsgKindFlag_ListInUI)|(0*DF_MsgKindFlag_ListInIPCDocs)), {(0*DF_MsgQueryFlag_AllowFiles)|(0*DF_MsgQueryFlag_AllowFolders)|(0*DF_MsgQueryFlag_KeepOldInput)|(0*DF_MsgQueryFlag_SelectOldInput)|(0*DF_MsgQueryFlag_CodeInput)|(0*DF_MsgQueryFlag_Required), D_RegSlot_Null, D_EntityKind_Nil}},
{str8_lit_comp("continue"), str8_lit_comp("Continue"), str8_lit_comp(""), str8_lit_comp("Continue"), ((0*DF_MsgKindFlag_ListInUI)|(0*DF_MsgKindFlag_ListInIPCDocs)), {(0*DF_MsgQueryFlag_AllowFiles)|(0*DF_MsgQueryFlag_AllowFolders)|(0*DF_MsgQueryFlag_KeepOldInput)|(0*DF_MsgQueryFlag_SelectOldInput)|(0*DF_MsgQueryFlag_CodeInput)|(0*DF_MsgQueryFlag_Required), D_RegSlot_Null, D_EntityKind_Nil}},
{str8_lit_comp("step_into_inst"), str8_lit_comp("StepIntoInst"), str8_lit_comp(""), str8_lit_comp("StepIntoInst"), ((0*DF_MsgKindFlag_ListInUI)|(0*DF_MsgKindFlag_ListInIPCDocs)), {(0*DF_MsgQueryFlag_AllowFiles)|(0*DF_MsgQueryFlag_AllowFolders)|(0*DF_MsgQueryFlag_KeepOldInput)|(0*DF_MsgQueryFlag_SelectOldInput)|(0*DF_MsgQueryFlag_CodeInput)|(0*DF_MsgQueryFlag_Required), D_RegSlot_Null, D_EntityKind_Nil}},
{str8_lit_comp("step_over_inst"), str8_lit_comp("StepOverInst"), str8_lit_comp(""), str8_lit_comp("StepOverInst"), ((0*DF_MsgKindFlag_ListInUI)|(0*DF_MsgKindFlag_ListInIPCDocs)), {(0*DF_MsgQueryFlag_AllowFiles)|(0*DF_MsgQueryFlag_AllowFolders)|(0*DF_MsgQueryFlag_KeepOldInput)|(0*DF_MsgQueryFlag_SelectOldInput)|(0*DF_MsgQueryFlag_CodeInput)|(0*DF_MsgQueryFlag_Required), D_RegSlot_Null, D_EntityKind_Nil}},
{str8_lit_comp("step_into_line"), str8_lit_comp("StepIntoLine"), str8_lit_comp(""), str8_lit_comp("StepIntoLine"), ((0*DF_MsgKindFlag_ListInUI)|(0*DF_MsgKindFlag_ListInIPCDocs)), {(0*DF_MsgQueryFlag_AllowFiles)|(0*DF_MsgQueryFlag_AllowFolders)|(0*DF_MsgQueryFlag_KeepOldInput)|(0*DF_MsgQueryFlag_SelectOldInput)|(0*DF_MsgQueryFlag_CodeInput)|(0*DF_MsgQueryFlag_Required), D_RegSlot_Null, D_EntityKind_Nil}},
{str8_lit_comp("step_over_line"), str8_lit_comp("StepOverLine"), str8_lit_comp(""), str8_lit_comp("StepOverLine"), ((0*DF_MsgKindFlag_ListInUI)|(0*DF_MsgKindFlag_ListInIPCDocs)), {(0*DF_MsgQueryFlag_AllowFiles)|(0*DF_MsgQueryFlag_AllowFolders)|(0*DF_MsgQueryFlag_KeepOldInput)|(0*DF_MsgQueryFlag_SelectOldInput)|(0*DF_MsgQueryFlag_CodeInput)|(0*DF_MsgQueryFlag_Required), D_RegSlot_Null, D_EntityKind_Nil}},
{str8_lit_comp("step_out"), str8_lit_comp("StepOut"), str8_lit_comp(""), str8_lit_comp("StepOut"), ((0*DF_MsgKindFlag_ListInUI)|(0*DF_MsgKindFlag_ListInIPCDocs)), {(0*DF_MsgQueryFlag_AllowFiles)|(0*DF_MsgQueryFlag_AllowFolders)|(0*DF_MsgQueryFlag_KeepOldInput)|(0*DF_MsgQueryFlag_SelectOldInput)|(0*DF_MsgQueryFlag_CodeInput)|(0*DF_MsgQueryFlag_Required), D_RegSlot_Null, D_EntityKind_Nil}},
{str8_lit_comp("halt"), str8_lit_comp("Halt"), str8_lit_comp(""), str8_lit_comp("Halt"), ((0*DF_MsgKindFlag_ListInUI)|(0*DF_MsgKindFlag_ListInIPCDocs)), {(0*DF_MsgQueryFlag_AllowFiles)|(0*DF_MsgQueryFlag_AllowFolders)|(0*DF_MsgQueryFlag_KeepOldInput)|(0*DF_MsgQueryFlag_SelectOldInput)|(0*DF_MsgQueryFlag_CodeInput)|(0*DF_MsgQueryFlag_Required), D_RegSlot_Null, D_EntityKind_Nil}},
{str8_lit_comp("soft_halt_refresh"), str8_lit_comp("SoftHaltRefresh"), str8_lit_comp(""), str8_lit_comp("SoftHaltRefresh"), ((0*DF_MsgKindFlag_ListInUI)|(0*DF_MsgKindFlag_ListInIPCDocs)), {(0*DF_MsgQueryFlag_AllowFiles)|(0*DF_MsgQueryFlag_AllowFolders)|(0*DF_MsgQueryFlag_KeepOldInput)|(0*DF_MsgQueryFlag_SelectOldInput)|(0*DF_MsgQueryFlag_CodeInput)|(0*DF_MsgQueryFlag_Required), D_RegSlot_Null, D_EntityKind_Nil}},
{str8_lit_comp("set_thread_ip"), str8_lit_comp("SetThreadIP"), str8_lit_comp(""), str8_lit_comp("SetThreadIP"), ((0*DF_MsgKindFlag_ListInUI)|(0*DF_MsgKindFlag_ListInIPCDocs)), {(0*DF_MsgQueryFlag_AllowFiles)|(0*DF_MsgQueryFlag_AllowFolders)|(0*DF_MsgQueryFlag_KeepOldInput)|(0*DF_MsgQueryFlag_SelectOldInput)|(0*DF_MsgQueryFlag_CodeInput)|(0*DF_MsgQueryFlag_Required), D_RegSlot_Null, D_EntityKind_Nil}},
{str8_lit_comp("run_to_line"), str8_lit_comp("RunToLine"), str8_lit_comp(""), str8_lit_comp("RunToLine"), ((0*DF_MsgKindFlag_ListInUI)|(0*DF_MsgKindFlag_ListInIPCDocs)), {(0*DF_MsgQueryFlag_AllowFiles)|(0*DF_MsgQueryFlag_AllowFolders)|(0*DF_MsgQueryFlag_KeepOldInput)|(0*DF_MsgQueryFlag_SelectOldInput)|(0*DF_MsgQueryFlag_CodeInput)|(0*DF_MsgQueryFlag_Required), D_RegSlot_Null, D_EntityKind_Nil}},
{str8_lit_comp("run_to_address"), str8_lit_comp("RunToAddress"), str8_lit_comp(""), str8_lit_comp("RunToAddress"), ((0*DF_MsgKindFlag_ListInUI)|(0*DF_MsgKindFlag_ListInIPCDocs)), {(0*DF_MsgQueryFlag_AllowFiles)|(0*DF_MsgQueryFlag_AllowFolders)|(0*DF_MsgQueryFlag_KeepOldInput)|(0*DF_MsgQueryFlag_SelectOldInput)|(0*DF_MsgQueryFlag_CodeInput)|(0*DF_MsgQueryFlag_Required), D_RegSlot_Null, D_EntityKind_Nil}},
{str8_lit_comp("run"), str8_lit_comp("Run"), str8_lit_comp(""), str8_lit_comp("Run"), ((0*DF_MsgKindFlag_ListInUI)|(0*DF_MsgKindFlag_ListInIPCDocs)), {(0*DF_MsgQueryFlag_AllowFiles)|(0*DF_MsgQueryFlag_AllowFolders)|(0*DF_MsgQueryFlag_KeepOldInput)|(0*DF_MsgQueryFlag_SelectOldInput)|(0*DF_MsgQueryFlag_CodeInput)|(0*DF_MsgQueryFlag_Required), D_RegSlot_Null, D_EntityKind_Nil}},
{str8_lit_comp("restart"), str8_lit_comp("Restart"), str8_lit_comp(""), str8_lit_comp("Restart"), ((0*DF_MsgKindFlag_ListInUI)|(0*DF_MsgKindFlag_ListInIPCDocs)), {(0*DF_MsgQueryFlag_AllowFiles)|(0*DF_MsgQueryFlag_AllowFolders)|(0*DF_MsgQueryFlag_KeepOldInput)|(0*DF_MsgQueryFlag_SelectOldInput)|(0*DF_MsgQueryFlag_CodeInput)|(0*DF_MsgQueryFlag_Required), D_RegSlot_Null, D_EntityKind_Nil}},
{str8_lit_comp("step_into"), str8_lit_comp("StepInto"), str8_lit_comp(""), str8_lit_comp("StepInto"), ((0*DF_MsgKindFlag_ListInUI)|(0*DF_MsgKindFlag_ListInIPCDocs)), {(0*DF_MsgQueryFlag_AllowFiles)|(0*DF_MsgQueryFlag_AllowFolders)|(0*DF_MsgQueryFlag_KeepOldInput)|(0*DF_MsgQueryFlag_SelectOldInput)|(0*DF_MsgQueryFlag_CodeInput)|(0*DF_MsgQueryFlag_Required), D_RegSlot_Null, D_EntityKind_Nil}},
{str8_lit_comp("step_over"), str8_lit_comp("StepOver"), str8_lit_comp(""), str8_lit_comp("StepOver"), ((0*DF_MsgKindFlag_ListInUI)|(0*DF_MsgKindFlag_ListInIPCDocs)), {(0*DF_MsgQueryFlag_AllowFiles)|(0*DF_MsgQueryFlag_AllowFolders)|(0*DF_MsgQueryFlag_KeepOldInput)|(0*DF_MsgQueryFlag_SelectOldInput)|(0*DF_MsgQueryFlag_CodeInput)|(0*DF_MsgQueryFlag_Required), D_RegSlot_Null, D_EntityKind_Nil}},
{str8_lit_comp("select_thread"), str8_lit_comp("SelectThread"), str8_lit_comp(""), str8_lit_comp("SelectThread"), ((0*DF_MsgKindFlag_ListInUI)|(0*DF_MsgKindFlag_ListInIPCDocs)), {(0*DF_MsgQueryFlag_AllowFiles)|(0*DF_MsgQueryFlag_AllowFolders)|(0*DF_MsgQueryFlag_KeepOldInput)|(0*DF_MsgQueryFlag_SelectOldInput)|(0*DF_MsgQueryFlag_CodeInput)|(0*DF_MsgQueryFlag_Required), D_RegSlot_Null, D_EntityKind_Nil}},
{str8_lit_comp("select_unwind"), str8_lit_comp("SelectUnwind"), str8_lit_comp(""), str8_lit_comp("SelectUnwind"), ((0*DF_MsgKindFlag_ListInUI)|(0*DF_MsgKindFlag_ListInIPCDocs)), {(0*DF_MsgQueryFlag_AllowFiles)|(0*DF_MsgQueryFlag_AllowFolders)|(0*DF_MsgQueryFlag_KeepOldInput)|(0*DF_MsgQueryFlag_SelectOldInput)|(0*DF_MsgQueryFlag_CodeInput)|(0*DF_MsgQueryFlag_Required), D_RegSlot_Null, D_EntityKind_Nil}},
{str8_lit_comp("up_one_frame"), str8_lit_comp("UpOneFrame"), str8_lit_comp(""), str8_lit_comp("UpOneFrame"), ((0*DF_MsgKindFlag_ListInUI)|(0*DF_MsgKindFlag_ListInIPCDocs)), {(0*DF_MsgQueryFlag_AllowFiles)|(0*DF_MsgQueryFlag_AllowFolders)|(0*DF_MsgQueryFlag_KeepOldInput)|(0*DF_MsgQueryFlag_SelectOldInput)|(0*DF_MsgQueryFlag_CodeInput)|(0*DF_MsgQueryFlag_Required), D_RegSlot_Null, D_EntityKind_Nil}},
{str8_lit_comp("down_one_frame"), str8_lit_comp("DownOneFrame"), str8_lit_comp(""), str8_lit_comp("DownOneFrame"), ((0*DF_MsgKindFlag_ListInUI)|(0*DF_MsgKindFlag_ListInIPCDocs)), {(0*DF_MsgQueryFlag_AllowFiles)|(0*DF_MsgQueryFlag_AllowFolders)|(0*DF_MsgQueryFlag_KeepOldInput)|(0*DF_MsgQueryFlag_SelectOldInput)|(0*DF_MsgQueryFlag_CodeInput)|(0*DF_MsgQueryFlag_Required), D_RegSlot_Null, D_EntityKind_Nil}},
{str8_lit_comp("freeze_thread"), str8_lit_comp("FreezeThread"), str8_lit_comp(""), str8_lit_comp("FreezeThread"), ((0*DF_MsgKindFlag_ListInUI)|(0*DF_MsgKindFlag_ListInIPCDocs)), {(0*DF_MsgQueryFlag_AllowFiles)|(0*DF_MsgQueryFlag_AllowFolders)|(0*DF_MsgQueryFlag_KeepOldInput)|(0*DF_MsgQueryFlag_SelectOldInput)|(0*DF_MsgQueryFlag_CodeInput)|(0*DF_MsgQueryFlag_Required), D_RegSlot_Null, D_EntityKind_Nil}},
{str8_lit_comp("thaw_thread"), str8_lit_comp("ThawThread"), str8_lit_comp(""), str8_lit_comp("ThawThread"), ((0*DF_MsgKindFlag_ListInUI)|(0*DF_MsgKindFlag_ListInIPCDocs)), {(0*DF_MsgQueryFlag_AllowFiles)|(0*DF_MsgQueryFlag_AllowFolders)|(0*DF_MsgQueryFlag_KeepOldInput)|(0*DF_MsgQueryFlag_SelectOldInput)|(0*DF_MsgQueryFlag_CodeInput)|(0*DF_MsgQueryFlag_Required), D_RegSlot_Null, D_EntityKind_Nil}},
{str8_lit_comp("freeze_process"), str8_lit_comp("FreezeProcess"), str8_lit_comp(""), str8_lit_comp("FreezeProcess"), ((0*DF_MsgKindFlag_ListInUI)|(0*DF_MsgKindFlag_ListInIPCDocs)), {(0*DF_MsgQueryFlag_AllowFiles)|(0*DF_MsgQueryFlag_AllowFolders)|(0*DF_MsgQueryFlag_KeepOldInput)|(0*DF_MsgQueryFlag_SelectOldInput)|(0*DF_MsgQueryFlag_CodeInput)|(0*DF_MsgQueryFlag_Required), D_RegSlot_Null, D_EntityKind_Nil}},
{str8_lit_comp("thaw_process"), str8_lit_comp("ThawProcess"), str8_lit_comp(""), str8_lit_comp("ThawProcess"), ((0*DF_MsgKindFlag_ListInUI)|(0*DF_MsgKindFlag_ListInIPCDocs)), {(0*DF_MsgQueryFlag_AllowFiles)|(0*DF_MsgQueryFlag_AllowFolders)|(0*DF_MsgQueryFlag_KeepOldInput)|(0*DF_MsgQueryFlag_SelectOldInput)|(0*DF_MsgQueryFlag_CodeInput)|(0*DF_MsgQueryFlag_Required), D_RegSlot_Null, D_EntityKind_Nil}},
{str8_lit_comp("freeze_machine"), str8_lit_comp("FreezeMachine"), str8_lit_comp(""), str8_lit_comp("FreezeMachine"), ((0*DF_MsgKindFlag_ListInUI)|(0*DF_MsgKindFlag_ListInIPCDocs)), {(0*DF_MsgQueryFlag_AllowFiles)|(0*DF_MsgQueryFlag_AllowFolders)|(0*DF_MsgQueryFlag_KeepOldInput)|(0*DF_MsgQueryFlag_SelectOldInput)|(0*DF_MsgQueryFlag_CodeInput)|(0*DF_MsgQueryFlag_Required), D_RegSlot_Null, D_EntityKind_Nil}},
{str8_lit_comp("thaw_machine"), str8_lit_comp("ThawMachine"), str8_lit_comp(""), str8_lit_comp("ThawMachine"), ((0*DF_MsgKindFlag_ListInUI)|(0*DF_MsgKindFlag_ListInIPCDocs)), {(0*DF_MsgQueryFlag_AllowFiles)|(0*DF_MsgQueryFlag_AllowFolders)|(0*DF_MsgQueryFlag_KeepOldInput)|(0*DF_MsgQueryFlag_SelectOldInput)|(0*DF_MsgQueryFlag_CodeInput)|(0*DF_MsgQueryFlag_Required), D_RegSlot_Null, D_EntityKind_Nil}},
{str8_lit_comp("freeze_local_machine"), str8_lit_comp("FreezeLocalMachine"), str8_lit_comp(""), str8_lit_comp("FreezeLocalMachine"), ((0*DF_MsgKindFlag_ListInUI)|(0*DF_MsgKindFlag_ListInIPCDocs)), {(0*DF_MsgQueryFlag_AllowFiles)|(0*DF_MsgQueryFlag_AllowFolders)|(0*DF_MsgQueryFlag_KeepOldInput)|(0*DF_MsgQueryFlag_SelectOldInput)|(0*DF_MsgQueryFlag_CodeInput)|(0*DF_MsgQueryFlag_Required), D_RegSlot_Null, D_EntityKind_Nil}},
{str8_lit_comp("thaw_local_machine"), str8_lit_comp("ThawLocalMachine"), str8_lit_comp(""), str8_lit_comp("ThawLocalMachine"), ((0*DF_MsgKindFlag_ListInUI)|(0*DF_MsgKindFlag_ListInIPCDocs)), {(0*DF_MsgQueryFlag_AllowFiles)|(0*DF_MsgQueryFlag_AllowFolders)|(0*DF_MsgQueryFlag_KeepOldInput)|(0*DF_MsgQueryFlag_SelectOldInput)|(0*DF_MsgQueryFlag_CodeInput)|(0*DF_MsgQueryFlag_Required), D_RegSlot_Null, D_EntityKind_Nil}},
{str8_lit_comp("run_to_cursor"), str8_lit_comp("RunToCursor"), str8_lit_comp(""), str8_lit_comp("RunToCursor"), ((0*DF_MsgKindFlag_ListInUI)|(0*DF_MsgKindFlag_ListInIPCDocs)), {(0*DF_MsgQueryFlag_AllowFiles)|(0*DF_MsgQueryFlag_AllowFolders)|(0*DF_MsgQueryFlag_KeepOldInput)|(0*DF_MsgQueryFlag_SelectOldInput)|(0*DF_MsgQueryFlag_CodeInput)|(0*DF_MsgQueryFlag_Required), D_RegSlot_Null, D_EntityKind_Nil}},
{str8_lit_comp("set_next_statement"), str8_lit_comp("SetNextStatement"), str8_lit_comp(""), str8_lit_comp("SetNextStatement"), ((0*DF_MsgKindFlag_ListInUI)|(0*DF_MsgKindFlag_ListInIPCDocs)), {(0*DF_MsgQueryFlag_AllowFiles)|(0*DF_MsgQueryFlag_AllowFolders)|(0*DF_MsgQueryFlag_KeepOldInput)|(0*DF_MsgQueryFlag_SelectOldInput)|(0*DF_MsgQueryFlag_CodeInput)|(0*DF_MsgQueryFlag_Required), D_RegSlot_Null, D_EntityKind_Nil}},
};
DF_StringBindingPair df_g_default_binding_table[110] =
{
{str8_lit_comp("kill_all"), {OS_Key_F5, 0 |OS_EventFlag_Shift }},
@@ -385,7 +391,7 @@ str8_lit_comp("5"),
str8_lit_comp("c"),
};
String8 df_view_kind_name_lower_table[33] =
String8 df_view_kind_name_lower_table[34] =
{
str8_lit_comp("null"),
str8_lit_comp("empty"),
@@ -395,6 +401,7 @@ str8_lit_comp("file_system"),
str8_lit_comp("system_processes"),
str8_lit_comp("entity_lister"),
str8_lit_comp("symbol_lister"),
str8_lit_comp("target"),
str8_lit_comp("targets"),
str8_lit_comp("file_path_map"),
str8_lit_comp("auto_view_rules"),
@@ -422,7 +429,7 @@ str8_lit_comp("exception_filters"),
str8_lit_comp("settings"),
};
DF_ViewSpecInfo df_g_gfx_view_kind_spec_info_table[33] =
DF_ViewSpecInfo df_g_gfx_view_kind_spec_info_table[34] =
{
{(0|0*DF_ViewSpecFlag_ParameterizedByEntity|0*DF_ViewSpecFlag_ProjectSpecific|0*DF_ViewSpecFlag_CanSerialize|0*DF_ViewSpecFlag_CanFilter|0*DF_ViewSpecFlag_FilterIsCode|0*DF_ViewSpecFlag_TypingAutomaticallyFilters), str8_lit_comp("null"), str8_lit_comp(""), DF_IconKind_Null, DF_VIEW_SETUP_FUNCTION_NAME(null), DF_VIEW_CMD_FUNCTION_NAME(null), DF_VIEW_UI_FUNCTION_NAME(null)},
{(0|0*DF_ViewSpecFlag_ParameterizedByEntity|0*DF_ViewSpecFlag_ProjectSpecific|0*DF_ViewSpecFlag_CanSerialize|0*DF_ViewSpecFlag_CanFilter|0*DF_ViewSpecFlag_FilterIsCode|0*DF_ViewSpecFlag_TypingAutomaticallyFilters), str8_lit_comp("empty"), str8_lit_comp(""), DF_IconKind_Null, DF_VIEW_SETUP_FUNCTION_NAME(empty), DF_VIEW_CMD_FUNCTION_NAME(empty), DF_VIEW_UI_FUNCTION_NAME(empty)},
@@ -432,6 +439,7 @@ DF_ViewSpecInfo df_g_gfx_view_kind_spec_info_table[33] =
{(0|0*DF_ViewSpecFlag_ParameterizedByEntity|0*DF_ViewSpecFlag_ProjectSpecific|0*DF_ViewSpecFlag_CanSerialize|0*DF_ViewSpecFlag_CanFilter|0*DF_ViewSpecFlag_FilterIsCode|0*DF_ViewSpecFlag_TypingAutomaticallyFilters), str8_lit_comp("system_processes"), str8_lit_comp("System Processes"), DF_IconKind_Null, DF_VIEW_SETUP_FUNCTION_NAME(system_processes), DF_VIEW_CMD_FUNCTION_NAME(system_processes), DF_VIEW_UI_FUNCTION_NAME(system_processes)},
{(0|0*DF_ViewSpecFlag_ParameterizedByEntity|0*DF_ViewSpecFlag_ProjectSpecific|0*DF_ViewSpecFlag_CanSerialize|0*DF_ViewSpecFlag_CanFilter|0*DF_ViewSpecFlag_FilterIsCode|0*DF_ViewSpecFlag_TypingAutomaticallyFilters), str8_lit_comp("entity_lister"), str8_lit_comp("Entity List"), DF_IconKind_Null, DF_VIEW_SETUP_FUNCTION_NAME(entity_lister), DF_VIEW_CMD_FUNCTION_NAME(entity_lister), DF_VIEW_UI_FUNCTION_NAME(entity_lister)},
{(0|0*DF_ViewSpecFlag_ParameterizedByEntity|0*DF_ViewSpecFlag_ProjectSpecific|0*DF_ViewSpecFlag_CanSerialize|0*DF_ViewSpecFlag_CanFilter|0*DF_ViewSpecFlag_FilterIsCode|0*DF_ViewSpecFlag_TypingAutomaticallyFilters), str8_lit_comp("symbol_lister"), str8_lit_comp("Symbols"), DF_IconKind_Null, DF_VIEW_SETUP_FUNCTION_NAME(symbol_lister), DF_VIEW_CMD_FUNCTION_NAME(symbol_lister), DF_VIEW_UI_FUNCTION_NAME(symbol_lister)},
{(0|1*DF_ViewSpecFlag_ParameterizedByEntity|0*DF_ViewSpecFlag_ProjectSpecific|0*DF_ViewSpecFlag_CanSerialize|0*DF_ViewSpecFlag_CanFilter|0*DF_ViewSpecFlag_FilterIsCode|0*DF_ViewSpecFlag_TypingAutomaticallyFilters), str8_lit_comp("target"), str8_lit_comp("Target"), DF_IconKind_Target, DF_VIEW_SETUP_FUNCTION_NAME(target), DF_VIEW_CMD_FUNCTION_NAME(target), DF_VIEW_UI_FUNCTION_NAME(target)},
{(0|0*DF_ViewSpecFlag_ParameterizedByEntity|0*DF_ViewSpecFlag_ProjectSpecific|1*DF_ViewSpecFlag_CanSerialize|1*DF_ViewSpecFlag_CanFilter|0*DF_ViewSpecFlag_FilterIsCode|1*DF_ViewSpecFlag_TypingAutomaticallyFilters), str8_lit_comp("targets"), str8_lit_comp("Targets"), DF_IconKind_Target, DF_VIEW_SETUP_FUNCTION_NAME(targets), DF_VIEW_CMD_FUNCTION_NAME(targets), DF_VIEW_UI_FUNCTION_NAME(targets)},
{(0|0*DF_ViewSpecFlag_ParameterizedByEntity|0*DF_ViewSpecFlag_ProjectSpecific|1*DF_ViewSpecFlag_CanSerialize|0*DF_ViewSpecFlag_CanFilter|0*DF_ViewSpecFlag_FilterIsCode|0*DF_ViewSpecFlag_TypingAutomaticallyFilters), str8_lit_comp("file_path_map"), str8_lit_comp("File Path Map"), DF_IconKind_FileOutline, DF_VIEW_SETUP_FUNCTION_NAME(file_path_map), DF_VIEW_CMD_FUNCTION_NAME(file_path_map), DF_VIEW_UI_FUNCTION_NAME(file_path_map)},
{(0|0*DF_ViewSpecFlag_ParameterizedByEntity|0*DF_ViewSpecFlag_ProjectSpecific|1*DF_ViewSpecFlag_CanSerialize|0*DF_ViewSpecFlag_CanFilter|0*DF_ViewSpecFlag_FilterIsCode|0*DF_ViewSpecFlag_TypingAutomaticallyFilters), str8_lit_comp("auto_view_rules"), str8_lit_comp("Auto View Rules"), DF_IconKind_Binoculars, DF_VIEW_SETUP_FUNCTION_NAME(auto_view_rules), DF_VIEW_CMD_FUNCTION_NAME(auto_view_rules), DF_VIEW_UI_FUNCTION_NAME(auto_view_rules)},
+7 -138
View File
@@ -6,79 +6,9 @@
#ifndef DBG_FRONTEND_META_H
#define DBG_FRONTEND_META_H
typedef enum DF_RegSlot
{
DF_RegSlot_Null,
DF_RegSlot_MachineID,
DF_RegSlot_Process,
DF_RegSlot_Module,
DF_RegSlot_Thread,
DF_RegSlot_Window,
DF_RegSlot_Panel,
DF_RegSlot_View,
DF_RegSlot_PrevView,
DF_RegSlot_DstPanel,
DF_RegSlot_CfgTree,
DF_RegSlot_CfgTreeList,
DF_RegSlot_UnwindCount,
DF_RegSlot_InlineDepth,
DF_RegSlot_FilePath,
DF_RegSlot_Cursor,
DF_RegSlot_Mark,
DF_RegSlot_TextKey,
DF_RegSlot_LangKind,
DF_RegSlot_Lines,
DF_RegSlot_DbgiKey,
DF_RegSlot_VaddrRange,
DF_RegSlot_VoffRange,
DF_RegSlot_PID,
DF_RegSlot_ForceConfirm,
DF_RegSlot_PreferDisasm,
DF_RegSlot_Dir2,
DF_RegSlot_String,
DF_RegSlot_ParamsTree,
DF_RegSlot_OSEvent,
DF_RegSlot_COUNT,
} DF_RegSlot;
typedef enum DF_MsgKind
{
DF_MsgKind_Null,
DF_MsgKind_LaunchAndRun,
DF_MsgKind_LaunchAndStepInto,
DF_MsgKind_Kill,
DF_MsgKind_KillAll,
DF_MsgKind_Attach,
DF_MsgKind_Detach,
DF_MsgKind_Continue,
DF_MsgKind_StepIntoInst,
DF_MsgKind_StepOverInst,
DF_MsgKind_StepIntoLine,
DF_MsgKind_StepOverLine,
DF_MsgKind_StepOut,
DF_MsgKind_Halt,
DF_MsgKind_SoftHaltRefresh,
DF_MsgKind_SetThreadIP,
DF_MsgKind_RunToLine,
DF_MsgKind_RunToAddress,
DF_MsgKind_Run,
DF_MsgKind_Restart,
DF_MsgKind_StepInto,
DF_MsgKind_StepOver,
DF_MsgKind_SelectThread,
DF_MsgKind_SelectUnwind,
DF_MsgKind_UpOneFrame,
DF_MsgKind_DownOneFrame,
DF_MsgKind_FreezeThread,
DF_MsgKind_ThawThread,
DF_MsgKind_FreezeProcess,
DF_MsgKind_ThawProcess,
DF_MsgKind_FreezeMachine,
DF_MsgKind_ThawMachine,
DF_MsgKind_FreezeLocalMachine,
DF_MsgKind_ThawLocalMachine,
DF_MsgKind_RunToCursor,
DF_MsgKind_SetNextStatement,
DF_MsgKind_Exit,
DF_MsgKind_RunCommand,
DF_MsgKind_ToggleDevMenu,
@@ -299,6 +229,7 @@ DF_ViewKind_FileSystem,
DF_ViewKind_SystemProcesses,
DF_ViewKind_EntityLister,
DF_ViewKind_SymbolLister,
DF_ViewKind_Target,
DF_ViewKind_Targets,
DF_ViewKind_FilePathMap,
DF_ViewKind_AutoViewRules,
@@ -445,71 +376,6 @@ DF_SettingCode_HintCodeText,
DF_SettingCode_COUNT,
} DF_SettingCode;
typedef struct DF_Regs DF_Regs;
struct DF_Regs
{
CTRL_MachineID machine_id;
DMN_Handle process;
DMN_Handle module;
DMN_Handle thread;
DF_Handle window;
DF_Handle panel;
DF_Handle view;
DF_Handle prev_view;
DF_Handle dst_panel;
DF_Handle cfg_tree;
DF_HandleList cfg_tree_list;
U64 unwind_count;
U64 inline_depth;
String8 file_path;
TxtPt cursor;
TxtPt mark;
U128 text_key;
TXT_LangKind lang_kind;
D_LineList lines;
DI_Key dbgi_key;
Rng1U64 vaddr_range;
Rng1U64 voff_range;
U32 pid;
B32 force_confirm;
B32 prefer_disasm;
Dir2 dir2;
String8 string;
MD_Node * params_tree;
OS_Event * os_event;
};
#define df_regs_lit_init_top \
.machine_id = df_regs()->machine_id,\
.process = df_regs()->process,\
.module = df_regs()->module,\
.thread = df_regs()->thread,\
.window = df_regs()->window,\
.panel = df_regs()->panel,\
.view = df_regs()->view,\
.prev_view = df_regs()->prev_view,\
.dst_panel = df_regs()->dst_panel,\
.cfg_tree = df_regs()->cfg_tree,\
.cfg_tree_list = df_regs()->cfg_tree_list,\
.unwind_count = df_regs()->unwind_count,\
.inline_depth = df_regs()->inline_depth,\
.file_path = df_regs()->file_path,\
.cursor = df_regs()->cursor,\
.mark = df_regs()->mark,\
.text_key = df_regs()->text_key,\
.lang_kind = df_regs()->lang_kind,\
.lines = df_regs()->lines,\
.dbgi_key = df_regs()->dbgi_key,\
.vaddr_range = df_regs()->vaddr_range,\
.voff_range = df_regs()->voff_range,\
.pid = df_regs()->pid,\
.force_confirm = df_regs()->force_confirm,\
.prefer_disasm = df_regs()->prefer_disasm,\
.dir2 = df_regs()->dir2,\
.string = df_regs()->string,\
.params_tree = df_regs()->params_tree,\
.os_event = df_regs()->os_event,\
DF_VIEW_SETUP_FUNCTION_DEF(null);
DF_VIEW_SETUP_FUNCTION_DEF(empty);
DF_VIEW_SETUP_FUNCTION_DEF(getting_started);
@@ -518,6 +384,7 @@ DF_VIEW_SETUP_FUNCTION_DEF(file_system);
DF_VIEW_SETUP_FUNCTION_DEF(system_processes);
DF_VIEW_SETUP_FUNCTION_DEF(entity_lister);
DF_VIEW_SETUP_FUNCTION_DEF(symbol_lister);
DF_VIEW_SETUP_FUNCTION_DEF(target);
DF_VIEW_SETUP_FUNCTION_DEF(targets);
DF_VIEW_SETUP_FUNCTION_DEF(file_path_map);
DF_VIEW_SETUP_FUNCTION_DEF(auto_view_rules);
@@ -551,6 +418,7 @@ DF_VIEW_CMD_FUNCTION_DEF(file_system);
DF_VIEW_CMD_FUNCTION_DEF(system_processes);
DF_VIEW_CMD_FUNCTION_DEF(entity_lister);
DF_VIEW_CMD_FUNCTION_DEF(symbol_lister);
DF_VIEW_CMD_FUNCTION_DEF(target);
DF_VIEW_CMD_FUNCTION_DEF(targets);
DF_VIEW_CMD_FUNCTION_DEF(file_path_map);
DF_VIEW_CMD_FUNCTION_DEF(auto_view_rules);
@@ -584,6 +452,7 @@ DF_VIEW_UI_FUNCTION_DEF(file_system);
DF_VIEW_UI_FUNCTION_DEF(system_processes);
DF_VIEW_UI_FUNCTION_DEF(entity_lister);
DF_VIEW_UI_FUNCTION_DEF(symbol_lister);
DF_VIEW_UI_FUNCTION_DEF(target);
DF_VIEW_UI_FUNCTION_DEF(targets);
DF_VIEW_UI_FUNCTION_DEF(file_path_map);
DF_VIEW_UI_FUNCTION_DEF(auto_view_rules);
@@ -623,14 +492,14 @@ DF_VIEW_RULE_LINE_STRINGIZE_FUNCTION_DEF(no_addr);
DF_VIEW_RULE_ROW_UI_FUNCTION_DEF(checkbox);
DF_VIEW_RULE_ROW_UI_FUNCTION_DEF(color_rgba);
C_LINKAGE_BEGIN
extern Rng1U64 df_reg_slot_range_table[30];
extern DF_MsgKindInfo df_msg_kind_info_table[134];
extern DF_MsgKindInfo df_d_msg_kind_info_table[36];
extern DF_StringBindingPair df_g_default_binding_table[110];
extern String8 df_g_binding_version_remap_old_name_table[7];
extern String8 df_g_binding_version_remap_new_name_table[7];
extern String8 df_g_icon_kind_text_table[69];
extern String8 df_view_kind_name_lower_table[33];
extern DF_ViewSpecInfo df_g_gfx_view_kind_spec_info_table[33];
extern String8 df_view_kind_name_lower_table[34];
extern DF_ViewSpecInfo df_g_gfx_view_kind_spec_info_table[34];
extern DF_IconKind df_cmd_kind_icon_kind_table[221];
extern DF_IconKind df_entity_kind_icon_kind_table[28];
extern D_CmdParamSlot df_g_cmd_param_slot_2_view_spec_src_map[7];
+2 -3
View File
@@ -169,6 +169,8 @@ struct MD_Node
MD_Node *parent;
MD_Node *first;
MD_Node *last;
// rjf: tag links
MD_Node *first_tag;
MD_Node *last_tag;
@@ -180,9 +182,6 @@ struct MD_Node
// rjf: source code info
U64 src_offset;
// rjf: user-controlled data attachments
U64 user_gen;
};
typedef struct MD_NodeRec MD_NodeRec;
+1 -1
View File
@@ -548,7 +548,7 @@ os_w32_wnd_proc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
U64 name_size = DragQueryFile(drop, idx, 0, 0) + 1;
U8 *name_ptr = push_array(os_w32_event_arena, U8, name_size);
DragQueryFile(drop, idx, (char *)name_ptr, name_size);
DragQueryFile(drop, idx, name_ptr, name_size);
str8_list_push(os_w32_event_arena, &event->strings, str8(name_ptr, name_size));
}
DragFinish(drop);