diff --git a/src/dbg_engine/dbg_engine.mdesk b/src/dbg_engine/dbg_engine.mdesk index 2dd4f956..feb62022 100644 --- a/src/dbg_engine/dbg_engine.mdesk +++ b/src/dbg_engine/dbg_engine.mdesk @@ -83,9 +83,6 @@ D_EntityKindTable: //- rjf: parser task entities {ConversionTask conversion_task conversion_tasks 0 0 0 1 0 0 0 0 0 0 0 "Label" Null "Conversion Task" } {ConversionFail conversion_fail conversion_fails 0 0 0 1 0 0 0 0 0 0 0 "Label" Null "Conversion Failure" } - - //- rjf: history - {EndedProcess ended_process ended_processes 1 0 0 1 0 0 0 0 0 0 0 "Label" Null "EndedProcess" } } //////////////////////////////// @@ -448,9 +445,6 @@ D_CoreCmdTable: // | | | | {EnableTarget 1 1 Entity Target 0 0 0 0 0 1 CheckFilled "enable_target" "Enable Target" "Enables a target, in addition to all targets currently enabled." "" } {DisableTarget 1 1 Entity Target 0 0 0 0 0 1 CheckHollow "disable_target" "Disable Target" "Disables a target." "" } - //- rjf: ended processes - {RetryEndedProcess 0 0 Entity Process 0 0 0 0 0 0 Null "retry_ended_process" "Retry Ended Process" "Launches a new process with the same options as the passed ended process." "" } - //- rjf: attaching {Attach 1 1 ID Nil 0 0 0 0 0 1 Null "attach" "Attach" "Attaches to a process that is already running on the local machine." "" } {RegisterAsJITDebugger 1 1 Null Nil 0 0 0 0 0 0 Null "register_as_jit_debugger" "Register As Just-In-Time (JIT) Debugger" "Registers the RAD debugger as the just-in-time (JIT) debugger used by the operating system." "" } diff --git a/src/dbg_engine/dbg_engine_core.c b/src/dbg_engine/dbg_engine_core.c index fcc211c5..58278d72 100644 --- a/src/dbg_engine/dbg_engine_core.c +++ b/src/dbg_engine/dbg_engine_core.c @@ -3143,39 +3143,6 @@ d_push_member_map_from_dbgi_key_voff(Arena *arena, DI_Scope *scope, DI_Key *dbgi return result; } -internal B32 -d_set_thread_rip(D_Entity *thread, U64 vaddr) -{ - Temp scratch = scratch_begin(0, 0); - void *block = ctrl_query_cached_reg_block_from_thread(scratch.arena, d_state->ctrl_entity_store, thread->ctrl_machine_id, thread->ctrl_handle); - regs_arch_block_write_rip(thread->arch, block, vaddr); - B32 result = ctrl_thread_write_reg_block(thread->ctrl_machine_id, thread->ctrl_handle, block); - - // rjf: early mutation of unwind cache for immediate frontend effect - if(result) - { - D_UnwindCache *cache = &d_state->unwind_cache; - if(cache->slots_count != 0) - { - D_Handle thread_handle = d_handle_from_entity(thread); - U64 hash = d_hash_from_string(str8_struct(&thread_handle)); - U64 slot_idx = hash%cache->slots_count; - D_UnwindCacheSlot *slot = &cache->slots[slot_idx]; - for(D_UnwindCacheNode *n = slot->first; n != 0; n = n->next) - { - if(d_handle_match(n->thread, thread_handle) && n->unwind.frames.count != 0) - { - regs_arch_block_write_rip(thread->arch, n->unwind.frames.v[0].regs, vaddr); - break; - } - } - } - } - - scratch_end(scratch); - return result; -} - internal D_Entity * d_module_from_thread_candidates(D_Entity *thread, D_EntityList *candidates) { @@ -3242,61 +3209,6 @@ d_unwind_from_ctrl_unwind(Arena *arena, DI_Scope *di_scope, D_Entity *process, C //////////////////////////////// //~ rjf: Target Controls -#if !defined(BLAKE2_H) -#define HAVE_SSE2 -#include "third_party/blake2/blake2.h" -#include "third_party/blake2/blake2b.c" -#endif - -//- rjf: state which parameterizes runs, but can be live-edited -> hash - -internal U128 -d_hash_from_ctrl_param_state(D_BreakpointArray *breakpoints) -{ - U128 result = {0}; - Temp scratch = scratch_begin(0, 0); - { - // rjf: build data strings of all param data - String8List strings = {0}; - { - for(CTRL_Entity *machine = d_state->ctrl_entity_store->root->first; - machine != &ctrl_entity_nil; - machine = machine->next) - { - if(machine->kind != CTRL_EntityKind_Machine) { continue; } - for(CTRL_Entity *process = machine->first; - process != &ctrl_entity_nil; - process = process->next) - { - if(process->kind != CTRL_EntityKind_Process) { continue; } - for(CTRL_Entity *thread = process->first; - thread != &ctrl_entity_nil; - thread = thread->next) - { - if(thread->kind != CTRL_EntityKind_Thread) { continue; } - str8_list_push(scratch.arena, &strings, str8_struct(&thread->is_frozen)); - } - } - } - for(U64 idx = 0; idx < breakpoints->count; idx += 1) - { - D_Breakpoint *bp = &breakpoints->v[idx]; - str8_list_push(scratch.arena, &strings, bp->file_path); - str8_list_push(scratch.arena, &strings, str8_struct(&bp->pt)); - str8_list_push(scratch.arena, &strings, bp->symbol_name); - str8_list_push(scratch.arena, &strings, str8_struct(&bp->vaddr)); - str8_list_push(scratch.arena, &strings, bp->condition); - } - } - - // rjf: join & hash to produce result - String8 string = str8_list_join(scratch.arena, &strings, 0); - blake2b((U8 *)&result.u64[0], sizeof(result), string.str, string.size, 0, 0); - } - scratch_end(scratch); - return result; -} - //- rjf: control message dispatching internal void @@ -6014,6 +5926,12 @@ d_errorf(char *fmt, ...) //////////////////////////////// //~ rjf: Main Layer Top-Level Calls +#if !defined(BLAKE2_H) +#define HAVE_SSE2 +#include "third_party/blake2/blake2.h" +#include "third_party/blake2/blake2b.c" +#endif + internal void d_init(CmdLine *cmdln, D_StateDeltaHistory *hist) { @@ -6583,6 +6501,51 @@ d_tick(Arena *arena, D_TargetArray *targets, D_BreakpointArray *breakpoints, DI_ scratch_end(scratch); } + ////////////////////////////// + //- rjf: hash ctrl parameterization state + // + U128 ctrl_param_state_hash = {0}; + { + Temp scratch = scratch_begin(0, 0); + + // rjf: build data strings of all param data + String8List strings = {0}; + { + CTRL_EntityList threads = ctrl_entity_list_from_kind(d_state->ctrl_entity_store, CTRL_EntityKind_Thread); + for(CTRL_EntityNode *n = threads.first; n != 0; n = n->next) + { + CTRL_Entity *thread = n->v; + str8_list_push(scratch.arena, &strings, str8_struct(&thread->is_frozen)); + } + for(U64 idx = 0; idx < breakpoints->count; idx += 1) + { + D_Breakpoint *bp = &breakpoints->v[idx]; + str8_list_push(scratch.arena, &strings, bp->file_path); + str8_list_push(scratch.arena, &strings, str8_struct(&bp->pt)); + str8_list_push(scratch.arena, &strings, bp->symbol_name); + str8_list_push(scratch.arena, &strings, str8_struct(&bp->vaddr)); + str8_list_push(scratch.arena, &strings, bp->condition); + } + } + + // rjf: join & hash to produce result + String8 string = str8_list_join(scratch.arena, &strings, 0); + blake2b((U8 *)&ctrl_param_state_hash.u64[0], sizeof(ctrl_param_state_hash), string.str, string.size, 0, 0); + + scratch_end(scratch); + } + + ////////////////////////////// + //- rjf: if ctrl thread is running, and our ctrl parameterization + // state hash has changed since the last run, we should soft- + // halt-refresh to inform the ctrl thread about the updated + // state + // + if(d_ctrl_targets_running() && !u128_match(ctrl_param_state_hash, d_state->ctrl_last_run_param_state_hash)) + { + d_cmd(D_CmdKind_SoftHaltRefresh); + } + ////////////////////////////// //- rjf: eliminate entities that are marked for deletion // @@ -6689,20 +6652,6 @@ d_tick(Arena *arena, D_TargetArray *targets, D_BreakpointArray *breakpoints, DI_ } } - ////////////////////////////// - //- rjf: compute state parameterization hash for ctrl runs, if ctrl is running - - // if the hash doesn't match the one for the last run, we need to soft-halt and - // re-send down the parameterization state - // - if(d_ctrl_targets_running()) - { - U128 state_hash = d_hash_from_ctrl_param_state(breakpoints); - if(!u128_match(state_hash, d_state->ctrl_last_run_param_state_hash)) - { - d_cmd(D_CmdKind_SoftHaltRefresh); - } - } - ////////////////////////////// //- rjf: process top-level commands // @@ -7016,7 +6965,32 @@ d_tick(Arena *arena, D_TargetArray *targets, D_BreakpointArray *breakpoints, DI_ U64 vaddr = params.vaddr; if(thread->kind == D_EntityKind_Thread && vaddr != 0) { - d_set_thread_rip(thread, vaddr); + void *block = ctrl_query_cached_reg_block_from_thread(scratch.arena, d_state->ctrl_entity_store, thread->ctrl_machine_id, thread->ctrl_handle); + regs_arch_block_write_rip(thread->arch, block, vaddr); + B32 result = ctrl_thread_write_reg_block(thread->ctrl_machine_id, thread->ctrl_handle, block); + + // rjf: early mutation of unwind cache for immediate frontend effect + if(result) + { + D_UnwindCache *cache = &d_state->unwind_cache; + if(cache->slots_count != 0) + { + D_Handle thread_handle = d_handle_from_entity(thread); + U64 hash = d_hash_from_string(str8_struct(&thread_handle)); + U64 slot_idx = hash%cache->slots_count; + D_UnwindCacheSlot *slot = &cache->slots[slot_idx]; + for(D_UnwindCacheNode *n = slot->first; n != 0; n = n->next) + { + if(d_handle_match(n->thread, thread_handle) && n->unwind.frames.count != 0) + { + regs_arch_block_write_rip(thread->arch, n->unwind.frames.v[0].regs, vaddr); + break; + } + } + } + } + + scratch_end(scratch); } }break; @@ -7782,25 +7756,6 @@ d_tick(Arena *arena, D_TargetArray *targets, D_BreakpointArray *breakpoints, DI_ } }break; - //- rjf: ended processes - case D_CmdKind_RetryEndedProcess: - { - D_Entity *ended_process = d_entity_from_handle(params.entity); - D_Entity *target = d_entity_from_handle(ended_process->entity_handle); - if(target->kind == D_EntityKind_Target) - { - d_cmd(D_CmdKind_LaunchAndRun, .entity = d_handle_from_entity(target)); - } - else if(d_entity_is_nil(target)) - { - d_cmd(D_CmdKind_Error, .string = str8_lit("The ended process' corresponding target is missing.")); - } - else if(d_entity_is_nil(ended_process)) - { - d_cmd(D_CmdKind_Error, .string = str8_lit("Invalid ended process.")); - } - }break; - //- rjf: attaching case D_CmdKind_Attach: { @@ -7865,7 +7820,7 @@ d_tick(Arena *arena, D_TargetArray *targets, D_BreakpointArray *breakpoints, DI_ { // rjf: compute hash of all run-parameterization entities, store { - d_state->ctrl_last_run_param_state_hash = d_hash_from_ctrl_param_state(breakpoints); + d_state->ctrl_last_run_param_state_hash = ctrl_param_state_hash; } // rjf: build run message diff --git a/src/dbg_engine/dbg_engine_core.h b/src/dbg_engine/dbg_engine_core.h index 82b68022..73341656 100644 --- a/src/dbg_engine/dbg_engine_core.h +++ b/src/dbg_engine/dbg_engine_core.h @@ -1364,16 +1364,12 @@ internal U64 d_tls_base_vaddr_from_process_root_rip(D_Entity *process, U64 root_ internal Arch d_arch_from_entity(D_Entity *entity); internal E_String2NumMap *d_push_locals_map_from_dbgi_key_voff(Arena *arena, DI_Scope *scope, DI_Key *dbgi_key, U64 voff); internal E_String2NumMap *d_push_member_map_from_dbgi_key_voff(Arena *arena, DI_Scope *scope, DI_Key *dbgi_key, U64 voff); -internal B32 d_set_thread_rip(D_Entity *thread, U64 vaddr); internal D_Entity *d_module_from_thread_candidates(D_Entity *thread, D_EntityList *candidates); internal D_Unwind d_unwind_from_ctrl_unwind(Arena *arena, DI_Scope *di_scope, D_Entity *process, CTRL_Unwind *base_unwind); //////////////////////////////// //~ rjf: Target Controls -//- rjf: state which parameterizes runs, but can be live-edited -> hash -internal U128 d_hash_from_ctrl_param_state(D_BreakpointArray *breakpoints); - //- rjf: control message dispatching internal void d_push_ctrl_msg(CTRL_Msg *msg); diff --git a/src/dbg_engine/generated/dbg_engine.meta.c b/src/dbg_engine/generated/dbg_engine.meta.c index 03010713..64fd382e 100644 --- a/src/dbg_engine/generated/dbg_engine.meta.c +++ b/src/dbg_engine/generated/dbg_engine.meta.c @@ -65,7 +65,7 @@ Rng1U64 d_cmd_param_slot_range_table[24] = {OffsetOf(D_CmdParams, inline_depth), OffsetOf(D_CmdParams, inline_depth) + sizeof(U64)}, }; -String8 d_entity_kind_display_string_table[31] = +String8 d_entity_kind_display_string_table[30] = { str8_lit_comp("Nil"), str8_lit_comp("Root"), @@ -97,10 +97,9 @@ str8_lit_comp("Pending Thread Name"), str8_lit_comp("Debug Info Path"), str8_lit_comp("Conversion Task"), str8_lit_comp("Conversion Failure"), -str8_lit_comp("EndedProcess"), }; -String8 d_entity_kind_name_lower_table[31] = +String8 d_entity_kind_name_lower_table[30] = { str8_lit_comp("nil"), str8_lit_comp("root"), @@ -132,10 +131,9 @@ str8_lit_comp("pending_thread_name"), str8_lit_comp("debug_info_path"), str8_lit_comp("conversion_task"), str8_lit_comp("conversion_fail"), -str8_lit_comp("ended_process"), }; -String8 d_entity_kind_name_lower_plural_table[31] = +String8 d_entity_kind_name_lower_plural_table[30] = { str8_lit_comp("nils"), str8_lit_comp("roots"), @@ -167,10 +165,9 @@ str8_lit_comp("pending_thread_names"), str8_lit_comp("debug_info_paths"), str8_lit_comp("conversion_tasks"), str8_lit_comp("conversion_fails"), -str8_lit_comp("ended_processes"), }; -String8 d_entity_kind_name_label_table[31] = +String8 d_entity_kind_name_label_table[30] = { str8_lit_comp("Label"), str8_lit_comp("Label"), @@ -202,10 +199,9 @@ str8_lit_comp("Label"), str8_lit_comp("Label"), str8_lit_comp("Label"), str8_lit_comp("Label"), -str8_lit_comp("Label"), }; -D_EntityKindFlags d_entity_kind_flags_table[31] = +D_EntityKindFlags d_entity_kind_flags_table[30] = { (0*D_EntityKindFlag_CanDelete) | (0*D_EntityKindFlag_CanFreeze) | (0*D_EntityKindFlag_CanEdit) | (0*D_EntityKindFlag_CanRename) | (0*D_EntityKindFlag_CanEnable) | (0*D_EntityKindFlag_CanCondition) | (0*D_EntityKindFlag_CanDuplicate) | (0*D_EntityKindFlag_NameIsCode) | (0*D_EntityKindFlag_NameIsPath) | (0*D_EntityKindFlag_UserDefinedLifetime) | (0*D_EntityKindFlag_IsSerializedToConfig), (0*D_EntityKindFlag_CanDelete) | (0*D_EntityKindFlag_CanFreeze) | (0*D_EntityKindFlag_CanEdit) | (0*D_EntityKindFlag_CanRename) | (0*D_EntityKindFlag_CanEnable) | (0*D_EntityKindFlag_CanCondition) | (0*D_EntityKindFlag_CanDuplicate) | (0*D_EntityKindFlag_NameIsCode) | (0*D_EntityKindFlag_NameIsPath) | (0*D_EntityKindFlag_UserDefinedLifetime) | (0*D_EntityKindFlag_IsSerializedToConfig), @@ -237,7 +233,6 @@ D_EntityKindFlags d_entity_kind_flags_table[31] = (0*D_EntityKindFlag_CanDelete) | (0*D_EntityKindFlag_CanFreeze) | (0*D_EntityKindFlag_CanEdit) | (0*D_EntityKindFlag_CanRename) | (0*D_EntityKindFlag_CanEnable) | (0*D_EntityKindFlag_CanCondition) | (0*D_EntityKindFlag_CanDuplicate) | (0*D_EntityKindFlag_NameIsCode) | (0*D_EntityKindFlag_NameIsPath) | (0*D_EntityKindFlag_UserDefinedLifetime) | (0*D_EntityKindFlag_IsSerializedToConfig), (0*D_EntityKindFlag_CanDelete) | (0*D_EntityKindFlag_CanFreeze) | (0*D_EntityKindFlag_CanEdit) | (1*D_EntityKindFlag_CanRename) | (0*D_EntityKindFlag_CanEnable) | (0*D_EntityKindFlag_CanCondition) | (0*D_EntityKindFlag_CanDuplicate) | (0*D_EntityKindFlag_NameIsCode) | (0*D_EntityKindFlag_NameIsPath) | (0*D_EntityKindFlag_UserDefinedLifetime) | (0*D_EntityKindFlag_IsSerializedToConfig), (0*D_EntityKindFlag_CanDelete) | (0*D_EntityKindFlag_CanFreeze) | (0*D_EntityKindFlag_CanEdit) | (1*D_EntityKindFlag_CanRename) | (0*D_EntityKindFlag_CanEnable) | (0*D_EntityKindFlag_CanCondition) | (0*D_EntityKindFlag_CanDuplicate) | (0*D_EntityKindFlag_NameIsCode) | (0*D_EntityKindFlag_NameIsPath) | (0*D_EntityKindFlag_UserDefinedLifetime) | (0*D_EntityKindFlag_IsSerializedToConfig), -(1*D_EntityKindFlag_CanDelete) | (0*D_EntityKindFlag_CanFreeze) | (0*D_EntityKindFlag_CanEdit) | (1*D_EntityKindFlag_CanRename) | (0*D_EntityKindFlag_CanEnable) | (0*D_EntityKindFlag_CanCondition) | (0*D_EntityKindFlag_CanDuplicate) | (0*D_EntityKindFlag_NameIsCode) | (0*D_EntityKindFlag_NameIsPath) | (0*D_EntityKindFlag_UserDefinedLifetime) | (0*D_EntityKindFlag_IsSerializedToConfig), }; String8 d_cfg_src_string_table[4] = @@ -272,7 +267,7 @@ D_CmdKind_Null, D_CmdKind_Null, }; -D_CmdSpecInfo d_core_cmd_kind_spec_info_table[221] = +D_CmdSpecInfo d_core_cmd_kind_spec_info_table[220] = { { str8_lit_comp(""), str8_lit_comp(""), str8_lit_comp(""), str8_lit_comp(""), (D_CmdSpecFlag_ListInUI*0)|(D_CmdSpecFlag_ListInIPCDocs*0), {D_CmdParamSlot_Null, D_EntityKind_Nil, (D_CmdQueryFlag_AllowFiles*0)|(D_CmdQueryFlag_AllowFolders*0)|(D_CmdQueryFlag_CodeInput*0)|(D_CmdQueryFlag_KeepOldInput*0)|(D_CmdQueryFlag_SelectOldInput*0)|(D_CmdQueryFlag_Required*0)}}, { str8_lit_comp("exit"), str8_lit_comp("Exits the debugger."), str8_lit_comp("quit,close,abort"), str8_lit_comp("Exit"), (D_CmdSpecFlag_ListInUI*1)|(D_CmdSpecFlag_ListInIPCDocs*1), {D_CmdParamSlot_Null, D_EntityKind_Nil, (D_CmdQueryFlag_AllowFiles*0)|(D_CmdQueryFlag_AllowFolders*0)|(D_CmdQueryFlag_CodeInput*0)|(D_CmdQueryFlag_KeepOldInput*0)|(D_CmdQueryFlag_SelectOldInput*0)|(D_CmdQueryFlag_Required*0)}}, @@ -455,7 +450,6 @@ D_CmdSpecInfo d_core_cmd_kind_spec_info_table[221] = { str8_lit_comp("select_target"), str8_lit_comp("Selects a target."), str8_lit_comp(""), str8_lit_comp("Select Target"), (D_CmdSpecFlag_ListInUI*1)|(D_CmdSpecFlag_ListInIPCDocs*1), {D_CmdParamSlot_Entity, D_EntityKind_Target, (D_CmdQueryFlag_AllowFiles*0)|(D_CmdQueryFlag_AllowFolders*0)|(D_CmdQueryFlag_CodeInput*0)|(D_CmdQueryFlag_KeepOldInput*0)|(D_CmdQueryFlag_SelectOldInput*0)|(D_CmdQueryFlag_Required*1)}}, { str8_lit_comp("enable_target"), str8_lit_comp("Enables a target, in addition to all targets currently enabled."), str8_lit_comp(""), str8_lit_comp("Enable Target"), (D_CmdSpecFlag_ListInUI*1)|(D_CmdSpecFlag_ListInIPCDocs*1), {D_CmdParamSlot_Entity, D_EntityKind_Target, (D_CmdQueryFlag_AllowFiles*0)|(D_CmdQueryFlag_AllowFolders*0)|(D_CmdQueryFlag_CodeInput*0)|(D_CmdQueryFlag_KeepOldInput*0)|(D_CmdQueryFlag_SelectOldInput*0)|(D_CmdQueryFlag_Required*1)}}, { str8_lit_comp("disable_target"), str8_lit_comp("Disables a target."), str8_lit_comp(""), str8_lit_comp("Disable Target"), (D_CmdSpecFlag_ListInUI*1)|(D_CmdSpecFlag_ListInIPCDocs*1), {D_CmdParamSlot_Entity, D_EntityKind_Target, (D_CmdQueryFlag_AllowFiles*0)|(D_CmdQueryFlag_AllowFolders*0)|(D_CmdQueryFlag_CodeInput*0)|(D_CmdQueryFlag_KeepOldInput*0)|(D_CmdQueryFlag_SelectOldInput*0)|(D_CmdQueryFlag_Required*1)}}, -{ str8_lit_comp("retry_ended_process"), str8_lit_comp("Launches a new process with the same options as the passed ended process."), str8_lit_comp(""), str8_lit_comp("Retry Ended Process"), (D_CmdSpecFlag_ListInUI*0)|(D_CmdSpecFlag_ListInIPCDocs*0), {D_CmdParamSlot_Entity, D_EntityKind_Process, (D_CmdQueryFlag_AllowFiles*0)|(D_CmdQueryFlag_AllowFolders*0)|(D_CmdQueryFlag_CodeInput*0)|(D_CmdQueryFlag_KeepOldInput*0)|(D_CmdQueryFlag_SelectOldInput*0)|(D_CmdQueryFlag_Required*0)}}, { str8_lit_comp("attach"), str8_lit_comp("Attaches to a process that is already running on the local machine."), str8_lit_comp(""), str8_lit_comp("Attach"), (D_CmdSpecFlag_ListInUI*1)|(D_CmdSpecFlag_ListInIPCDocs*1), {D_CmdParamSlot_ID, D_EntityKind_Nil, (D_CmdQueryFlag_AllowFiles*0)|(D_CmdQueryFlag_AllowFolders*0)|(D_CmdQueryFlag_CodeInput*0)|(D_CmdQueryFlag_KeepOldInput*0)|(D_CmdQueryFlag_SelectOldInput*0)|(D_CmdQueryFlag_Required*1)}}, { str8_lit_comp("register_as_jit_debugger"), str8_lit_comp("Registers the RAD debugger as the just-in-time (JIT) debugger used by the operating system."), str8_lit_comp(""), str8_lit_comp("Register As Just-In-Time (JIT) Debugger"), (D_CmdSpecFlag_ListInUI*1)|(D_CmdSpecFlag_ListInIPCDocs*1), {D_CmdParamSlot_Null, D_EntityKind_Nil, (D_CmdQueryFlag_AllowFiles*0)|(D_CmdQueryFlag_AllowFolders*0)|(D_CmdQueryFlag_CodeInput*0)|(D_CmdQueryFlag_KeepOldInput*0)|(D_CmdQueryFlag_SelectOldInput*0)|(D_CmdQueryFlag_Required*0)}}, { str8_lit_comp("entity_ref_fast_path"), str8_lit_comp("Activates the default behavior when clicking an entity reference."), str8_lit_comp(""), str8_lit_comp("Entity Reference Fast Path"), (D_CmdSpecFlag_ListInUI*0)|(D_CmdSpecFlag_ListInIPCDocs*0), {D_CmdParamSlot_Null, D_EntityKind_Nil, (D_CmdQueryFlag_AllowFiles*0)|(D_CmdQueryFlag_AllowFolders*0)|(D_CmdQueryFlag_CodeInput*0)|(D_CmdQueryFlag_KeepOldInput*0)|(D_CmdQueryFlag_SelectOldInput*0)|(D_CmdQueryFlag_Required*0)}}, diff --git a/src/dbg_engine/generated/dbg_engine.meta.h b/src/dbg_engine/generated/dbg_engine.meta.h index 1a0e4c96..c1db3aa7 100644 --- a/src/dbg_engine/generated/dbg_engine.meta.h +++ b/src/dbg_engine/generated/dbg_engine.meta.h @@ -81,7 +81,6 @@ D_EntityKind_PendingThreadName, D_EntityKind_DebugInfoPath, D_EntityKind_ConversionTask, D_EntityKind_ConversionFail, -D_EntityKind_EndedProcess, D_EntityKind_COUNT, } D_EntityKind; @@ -268,7 +267,6 @@ D_CmdKind_EditTarget, D_CmdKind_SelectTarget, D_CmdKind_EnableTarget, D_CmdKind_DisableTarget, -D_CmdKind_RetryEndedProcess, D_CmdKind_Attach, D_CmdKind_RegisterAsJITDebugger, D_CmdKind_EntityRefFastPath, @@ -498,11 +496,11 @@ struct {B32 *value_ptr; String8 name;} DEV_toggle_table[] = C_LINKAGE_BEGIN extern Rng1U64 d_reg_slot_range_table[29]; extern Rng1U64 d_cmd_param_slot_range_table[24]; -extern String8 d_entity_kind_display_string_table[31]; -extern String8 d_entity_kind_name_lower_table[31]; -extern String8 d_entity_kind_name_lower_plural_table[31]; -extern String8 d_entity_kind_name_label_table[31]; -extern D_EntityKindFlags d_entity_kind_flags_table[31]; +extern String8 d_entity_kind_display_string_table[30]; +extern String8 d_entity_kind_name_lower_table[30]; +extern String8 d_entity_kind_name_lower_plural_table[30]; +extern String8 d_entity_kind_name_label_table[30]; +extern D_EntityKindFlags d_entity_kind_flags_table[30]; extern String8 d_cfg_src_string_table[4]; extern D_CmdKind d_cfg_src_load_cmd_kind_table[4]; extern D_CmdKind d_cfg_src_write_cmd_kind_table[4]; diff --git a/src/dbg_frontend/generated/dbg_frontend.meta.c b/src/dbg_frontend/generated/dbg_frontend.meta.c index 68a1dc19..5b842759 100644 --- a/src/dbg_frontend/generated/dbg_frontend.meta.c +++ b/src/dbg_frontend/generated/dbg_frontend.meta.c @@ -289,7 +289,7 @@ DF_ViewSpecInfo df_g_gfx_view_kind_spec_info_table[34] = {(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("settings"), str8_lit_comp("Settings"), DF_IconKind_Gear, DF_VIEW_SETUP_FUNCTION_NAME(settings), DF_VIEW_CMD_FUNCTION_NAME(settings), DF_VIEW_UI_FUNCTION_NAME(settings)}, }; -DF_IconKind df_cmd_kind_icon_kind_table[221] = +DF_IconKind df_cmd_kind_icon_kind_table[220] = { DF_IconKind_Null, DF_IconKind_X, @@ -476,7 +476,6 @@ DF_IconKind_Null, DF_IconKind_Null, DF_IconKind_Null, DF_IconKind_Null, -DF_IconKind_Null, DF_IconKind_FileOutline, DF_IconKind_Find, DF_IconKind_Find, @@ -514,7 +513,7 @@ DF_IconKind_Null, DF_IconKind_Null, }; -DF_IconKind df_entity_kind_icon_kind_table[31] = +DF_IconKind df_entity_kind_icon_kind_table[30] = { DF_IconKind_Null, DF_IconKind_Null, @@ -546,7 +545,6 @@ DF_IconKind_Threads, DF_IconKind_Module, DF_IconKind_Null, DF_IconKind_Null, -DF_IconKind_Null, }; D_CmdParamSlot df_g_cmd_param_slot_2_view_spec_src_map[7] = diff --git a/src/dbg_frontend/generated/dbg_frontend.meta.h b/src/dbg_frontend/generated/dbg_frontend.meta.h index b2c7010b..7af85c96 100644 --- a/src/dbg_frontend/generated/dbg_frontend.meta.h +++ b/src/dbg_frontend/generated/dbg_frontend.meta.h @@ -359,8 +359,8 @@ 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[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[31]; +extern DF_IconKind df_cmd_kind_icon_kind_table[220]; +extern DF_IconKind df_entity_kind_icon_kind_table[30]; extern D_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]; extern String8 df_g_cmd_param_slot_2_view_spec_cmd_map[7];