mirror of
https://github.com/Ed94/raddebugger.git
synced 2026-07-15 22:11:28 -07:00
formally support hresult codes as distinct from handles in debug info & visualization
This commit is contained in:
+184
-85
@@ -4103,6 +4103,158 @@ df_string_from_ascii_value(Arena *arena, U8 val)
|
||||
return result;
|
||||
}
|
||||
|
||||
internal String8
|
||||
df_string_from_hresult_facility_code(U32 code)
|
||||
{
|
||||
String8 result = {0};
|
||||
switch(code)
|
||||
{
|
||||
default:{}break;
|
||||
case 0x1:{result = str8_lit("RPC");}break;
|
||||
case 0x2:{result = str8_lit("DISPATCH");}break;
|
||||
case 0x3:{result = str8_lit("STORAGE");}break;
|
||||
case 0x4:{result = str8_lit("ITF");}break;
|
||||
case 0x7:{result = str8_lit("WIN32");}break;
|
||||
case 0x8:{result = str8_lit("WINDOWS");}break;
|
||||
case 0x9:{result = str8_lit("SECURITY|SSPI");}break;
|
||||
case 0xA:{result = str8_lit("CONTROL");}break;
|
||||
case 0xB:{result = str8_lit("CERT");}break;
|
||||
case 0xC:{result = str8_lit("INTERNET");}break;
|
||||
case 0xD:{result = str8_lit("MEDIASERVER");}break;
|
||||
case 0xE:{result = str8_lit("MSMQ");}break;
|
||||
case 0xF:{result = str8_lit("SETUPAPI");}break;
|
||||
case 0x10:{result = str8_lit("SCARD");}break;
|
||||
case 0x11:{result = str8_lit("COMPLUS");}break;
|
||||
case 0x12:{result = str8_lit("AAF");}break;
|
||||
case 0x13:{result = str8_lit("URT");}break;
|
||||
case 0x14:{result = str8_lit("ACS");}break;
|
||||
case 0x15:{result = str8_lit("DPLAY");}break;
|
||||
case 0x16:{result = str8_lit("UMI");}break;
|
||||
case 0x17:{result = str8_lit("SXS");}break;
|
||||
case 0x18:{result = str8_lit("WINDOWS_CE");}break;
|
||||
case 0x19:{result = str8_lit("HTTP");}break;
|
||||
case 0x1A:{result = str8_lit("USERMODE_COMMONLOG");}break;
|
||||
case 0x1B:{result = str8_lit("WER");}break;
|
||||
case 0x1F:{result = str8_lit("USERMODE_FILTER_MANAGER");}break;
|
||||
case 0x20:{result = str8_lit("BACKGROUNDCOPY");}break;
|
||||
case 0x21:{result = str8_lit("CONFIGURATION|WIA");}break;
|
||||
case 0x22:{result = str8_lit("STATE_MANAGEMENT");}break;
|
||||
case 0x23:{result = str8_lit("METADIRECTORY");}break;
|
||||
case 0x24:{result = str8_lit("WINDOWSUPDATE");}break;
|
||||
case 0x25:{result = str8_lit("DIRECTORYSERVICE");}break;
|
||||
case 0x26:{result = str8_lit("GRAPHICS");}break;
|
||||
case 0x27:{result = str8_lit("SHELL|NAP");}break;
|
||||
case 0x28:{result = str8_lit("TPM_SERVICES");}break;
|
||||
case 0x29:{result = str8_lit("TPM_SOFTWARE");}break;
|
||||
case 0x2A:{result = str8_lit("UI");}break;
|
||||
case 0x2B:{result = str8_lit("XAML");}break;
|
||||
case 0x2C:{result = str8_lit("ACTION_QUEUE");}break;
|
||||
case 0x30:{result = str8_lit("WINDOWS_SETUP|PLA");}break;
|
||||
case 0x31:{result = str8_lit("FVE");}break;
|
||||
case 0x32:{result = str8_lit("FWP");}break;
|
||||
case 0x33:{result = str8_lit("WINRM");}break;
|
||||
case 0x34:{result = str8_lit("NDIS");}break;
|
||||
case 0x35:{result = str8_lit("USERMODE_HYPERVISOR");}break;
|
||||
case 0x36:{result = str8_lit("CMI");}break;
|
||||
case 0x37:{result = str8_lit("USERMODE_VIRTUALIZATION");}break;
|
||||
case 0x38:{result = str8_lit("USERMODE_VOLMGR");}break;
|
||||
case 0x39:{result = str8_lit("BCD");}break;
|
||||
case 0x3A:{result = str8_lit("USERMODE_VHD");}break;
|
||||
case 0x3C:{result = str8_lit("SDIAG");}break;
|
||||
case 0x3D:{result = str8_lit("WINPE|WEBSERVICES");}break;
|
||||
case 0x3E:{result = str8_lit("WPN");}break;
|
||||
case 0x3F:{result = str8_lit("WINDOWS_STORE");}break;
|
||||
case 0x40:{result = str8_lit("INPUT");}break;
|
||||
case 0x42:{result = str8_lit("EAP");}break;
|
||||
case 0x50:{result = str8_lit("WINDOWS_DEFENDER");}break;
|
||||
case 0x51:{result = str8_lit("OPC");}break;
|
||||
case 0x52:{result = str8_lit("XPS");}break;
|
||||
case 0x53:{result = str8_lit("RAS");}break;
|
||||
case 0x54:{result = str8_lit("POWERSHELL|MBN");}break;
|
||||
case 0x55:{result = str8_lit("EAS");}break;
|
||||
case 0x62:{result = str8_lit("P2P_INT");}break;
|
||||
case 0x63:{result = str8_lit("P2P");}break;
|
||||
case 0x64:{result = str8_lit("DAF");}break;
|
||||
case 0x65:{result = str8_lit("BLUETOOTH_ATT");}break;
|
||||
case 0x66:{result = str8_lit("AUDIO");}break;
|
||||
case 0x6D:{result = str8_lit("VISUALCPP");}break;
|
||||
case 0x70:{result = str8_lit("SCRIPT");}break;
|
||||
case 0x71:{result = str8_lit("PARSE");}break;
|
||||
case 0x78:{result = str8_lit("BLB");}break;
|
||||
case 0x79:{result = str8_lit("BLB_CLI");}break;
|
||||
case 0x7A:{result = str8_lit("WSBAPP");}break;
|
||||
case 0x80:{result = str8_lit("BLBUI");}break;
|
||||
case 0x81:{result = str8_lit("USN");}break;
|
||||
case 0x82:{result = str8_lit("USERMODE_VOLSNAP");}break;
|
||||
case 0x83:{result = str8_lit("TIERING");}break;
|
||||
case 0x85:{result = str8_lit("WSB_ONLINE");}break;
|
||||
case 0x86:{result = str8_lit("ONLINE_ID");}break;
|
||||
case 0x99:{result = str8_lit("DLS");}break;
|
||||
case 0xA0:{result = str8_lit("SOS");}break;
|
||||
case 0xB0:{result = str8_lit("DEBUGGERS");}break;
|
||||
case 0xE7:{result = str8_lit("USERMODE_SPACES");}break;
|
||||
case 0x100:{result = str8_lit("DMSERVER|RESTORE|SPP");}break;
|
||||
case 0x101:{result = str8_lit("DEPLOYMENT_SERVICES_SERVER");}break;
|
||||
case 0x102:{result = str8_lit("DEPLOYMENT_SERVICES_IMAGING");}break;
|
||||
case 0x103:{result = str8_lit("DEPLOYMENT_SERVICES_MANAGEMENT");}break;
|
||||
case 0x104:{result = str8_lit("DEPLOYMENT_SERVICES_UTIL");}break;
|
||||
case 0x105:{result = str8_lit("DEPLOYMENT_SERVICES_BINLSVC");}break;
|
||||
case 0x107:{result = str8_lit("DEPLOYMENT_SERVICES_PXE");}break;
|
||||
case 0x108:{result = str8_lit("DEPLOYMENT_SERVICES_TFTP");}break;
|
||||
case 0x110:{result = str8_lit("DEPLOYMENT_SERVICES_TRANSPORT_MANAGEMENT");}break;
|
||||
case 0x116:{result = str8_lit("DEPLOYMENT_SERVICES_DRIVER_PROVISIONING");}break;
|
||||
case 0x121:{result = str8_lit("DEPLOYMENT_SERVICES_MULTICAST_SERVER");}break;
|
||||
case 0x122:{result = str8_lit("DEPLOYMENT_SERVICES_MULTICAST_CLIENT");}break;
|
||||
case 0x125:{result = str8_lit("DEPLOYMENT_SERVICES_CONTENT_PROVIDER");}break;
|
||||
case 0x131:{result = str8_lit("LINGUISTIC_SERVICES");}break;
|
||||
case 0x375:{result = str8_lit("WEB");}break;
|
||||
case 0x376:{result = str8_lit("WEB_SOCKET");}break;
|
||||
case 0x446:{result = str8_lit("AUDIOSTREAMING");}break;
|
||||
case 0x600:{result = str8_lit("ACCELERATOR");}break;
|
||||
case 0x701:{result = str8_lit("MOBILE");}break;
|
||||
case 0x7CC:{result = str8_lit("WMAAECMA");}break;
|
||||
case 0x801:{result = str8_lit("WEP");}break;
|
||||
case 0x802:{result = str8_lit("SYNCENGINE");}break;
|
||||
case 0x878:{result = str8_lit("DIRECTMUSIC");}break;
|
||||
case 0x879:{result = str8_lit("DIRECT3D10");}break;
|
||||
case 0x87A:{result = str8_lit("DXGI");}break;
|
||||
case 0x87B:{result = str8_lit("DXGI_DDI");}break;
|
||||
case 0x87C:{result = str8_lit("DIRECT3D11");}break;
|
||||
case 0x888:{result = str8_lit("LEAP");}break;
|
||||
case 0x889:{result = str8_lit("AUDCLNT");}break;
|
||||
case 0x898:{result = str8_lit("WINCODEC_DWRITE_DWM");}break;
|
||||
case 0x899:{result = str8_lit("DIRECT2D");}break;
|
||||
case 0x900:{result = str8_lit("DEFRAG");}break;
|
||||
case 0x901:{result = str8_lit("USERMODE_SDBUS");}break;
|
||||
case 0x902:{result = str8_lit("JSCRIPT");}break;
|
||||
case 0xA01:{result = str8_lit("PIDGENX");}break;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
internal String8
|
||||
df_string_from_hresult_code(U32 code)
|
||||
{
|
||||
String8 result = {0};
|
||||
switch(code)
|
||||
{
|
||||
default:{}break;
|
||||
case 0x00000000: {result = str8_lit("S_OK: Operation successful");}break;
|
||||
case 0x00000001: {result = str8_lit("S_FALSE: Operation successful but returned no results");}break;
|
||||
case 0x80004004: {result = str8_lit("E_ABORT: Operation aborted");}break;
|
||||
case 0x80004005: {result = str8_lit("E_FAIL: Unspecified failure");}break;
|
||||
case 0x80004002: {result = str8_lit("E_NOINTERFACE: No such interface supported");}break;
|
||||
case 0x80004001: {result = str8_lit("E_NOTIMPL: Not implemented");}break;
|
||||
case 0x80004003: {result = str8_lit("E_POINTER: Pointer that is not valid");}break;
|
||||
case 0x8000FFFF: {result = str8_lit("E_UNEXPECTED: Unexpected failure");}break;
|
||||
case 0x80070005: {result = str8_lit("E_ACCESSDENIED: General access denied error");}break;
|
||||
case 0x80070006: {result = str8_lit("E_HANDLE: Handle that is not valid");}break;
|
||||
case 0x80070057: {result = str8_lit("E_INVALIDARG: One or more arguments are not valid");}break;
|
||||
case 0x8007000E: {result = str8_lit("E_OUTOFMEMORY: Failed to allocate necessary memory");}break;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
internal String8
|
||||
df_string_from_simple_typed_eval(Arena *arena, DF_EvalVizStringFlags flags, U32 radix, E_Eval eval)
|
||||
{
|
||||
@@ -4121,10 +4273,38 @@ df_string_from_simple_typed_eval(Arena *arena, DF_EvalVizStringFlags flags, U32
|
||||
|
||||
case E_TypeKind_Handle:
|
||||
{
|
||||
U64 min_digits = (radix == 16) ? type_byte_size*2 : 0;
|
||||
result = str8_from_s64(arena, eval.value.s64, radix, 0, digit_group_separator);
|
||||
}break;
|
||||
|
||||
case E_TypeKind_HResult:
|
||||
{
|
||||
if(flags & DF_EvalVizStringFlag_ReadOnlyDisplayRules)
|
||||
{
|
||||
Temp scratch = scratch_begin(&arena, 1);
|
||||
U32 hresult_value = (U32)eval.value.u64;
|
||||
U32 is_error = !!(hresult_value & (1ull<<31));
|
||||
U32 error_code = (hresult_value);
|
||||
U32 facility = (hresult_value & 0x7ff0000) >> 16;
|
||||
String8 value_string = str8_from_s64(scratch.arena, eval.value.u64, radix, 0, digit_group_separator);
|
||||
String8 facility_string = df_string_from_hresult_facility_code(facility);
|
||||
String8 error_string = df_string_from_hresult_code(error_code);
|
||||
result = push_str8f(arena, "%S%s%s%S%s%s%S%s",
|
||||
error_string,
|
||||
error_string.size != 0 ? " " : "",
|
||||
facility_string.size != 0 ? "[" : "",
|
||||
facility_string,
|
||||
facility_string.size != 0 ? "] ": "",
|
||||
error_string.size != 0 ? "(" : "",
|
||||
value_string,
|
||||
error_string.size != 0 ? ")" : "");
|
||||
scratch_end(scratch);
|
||||
}
|
||||
else
|
||||
{
|
||||
result = str8_from_s64(arena, eval.value.u64, radix, 0, digit_group_separator);
|
||||
}
|
||||
}break;
|
||||
|
||||
case E_TypeKind_Char8:
|
||||
case E_TypeKind_Char16:
|
||||
case E_TypeKind_Char32:
|
||||
@@ -4156,7 +4336,6 @@ df_string_from_simple_typed_eval(Arena *arena, DF_EvalVizStringFlags flags, U32
|
||||
case E_TypeKind_S32:
|
||||
case E_TypeKind_S64:
|
||||
{
|
||||
U64 min_digits = (radix == 16) ? type_byte_size*2 : 0;
|
||||
result = str8_from_s64(arena, eval.value.s64, radix, 0, digit_group_separator);
|
||||
}break;
|
||||
|
||||
@@ -8401,90 +8580,10 @@ df_core_begin_frame(Arena *arena, DF_CmdList *cmds, F32 dt)
|
||||
}
|
||||
}
|
||||
}break;
|
||||
case DF_CoreCmdKind_TextBreakpoint:
|
||||
case DF_CoreCmdKind_AddAddressBreakpoint:
|
||||
case DF_CoreCmdKind_AddFunctionBreakpoint:
|
||||
{
|
||||
DF_Entity *entity = df_entity_from_handle(params.entity);
|
||||
if(df_entity_is_nil(entity))
|
||||
{
|
||||
entity = df_entity_from_path(params.file_path, 0);
|
||||
}
|
||||
if(!df_entity_is_nil(entity))
|
||||
{
|
||||
S64 line_num = params.text_point.line;
|
||||
B32 removed_existing = 0;
|
||||
for(DF_Entity *child = entity->first, *next = 0; !df_entity_is_nil(child); child = next)
|
||||
{
|
||||
next = child->next;
|
||||
if(child->kind == DF_EntityKind_Breakpoint && child->flags & DF_EntityFlag_HasTextPoint && child->text_point.line == line_num)
|
||||
{
|
||||
removed_existing = 1;
|
||||
df_entity_mark_for_deletion(child);
|
||||
}
|
||||
}
|
||||
if(removed_existing == 0)
|
||||
{
|
||||
DF_Entity *bp = &df_g_nil_entity;
|
||||
DF_StateDeltaHistoryBatch(df_state_delta_history())
|
||||
{
|
||||
bp = df_entity_alloc(entity, DF_EntityKind_Breakpoint);
|
||||
}
|
||||
df_entity_equip_txt_pt(bp, params.text_point);
|
||||
df_entity_equip_cfg_src(bp, DF_CfgSrc_Project);
|
||||
}
|
||||
}
|
||||
}break;
|
||||
case DF_CoreCmdKind_AddressBreakpoint:
|
||||
{
|
||||
U64 vaddr = params.vaddr;
|
||||
if(vaddr != 0)
|
||||
{
|
||||
DF_Entity *bp = &df_g_nil_entity;
|
||||
DF_EntityList existing_bps = df_query_cached_entity_list_with_kind(DF_EntityKind_Breakpoint);
|
||||
for(DF_EntityNode *n = existing_bps.first; n != 0; n = n->next)
|
||||
{
|
||||
if(n->entity->vaddr == vaddr)
|
||||
{
|
||||
bp = n->entity;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if(df_entity_is_nil(bp))
|
||||
{
|
||||
DF_StateDeltaHistoryBatch(df_state_delta_history())
|
||||
{
|
||||
bp = df_entity_alloc(df_entity_root(), DF_EntityKind_Breakpoint);
|
||||
}
|
||||
df_entity_equip_vaddr(bp, vaddr);
|
||||
df_entity_equip_cfg_src(bp, DF_CfgSrc_Project);
|
||||
}
|
||||
else
|
||||
{
|
||||
df_entity_mark_for_deletion(bp);
|
||||
}
|
||||
}
|
||||
}break;
|
||||
case DF_CoreCmdKind_FunctionBreakpoint:
|
||||
{
|
||||
String8 function_name = params.string;
|
||||
if(function_name.size != 0)
|
||||
{
|
||||
DF_Entity *symb = df_entity_from_name_and_kind(function_name, DF_EntityKind_EntryPoint);
|
||||
DF_Entity *bp = df_entity_ancestor_from_kind(symb, DF_EntityKind_Breakpoint);
|
||||
if(df_entity_is_nil(bp))
|
||||
{
|
||||
DF_StateDeltaHistoryBatch(df_state_delta_history())
|
||||
{
|
||||
bp = df_entity_alloc(df_entity_root(), DF_EntityKind_Breakpoint);
|
||||
}
|
||||
DF_Entity *symbol_name_entity = df_entity_alloc(bp, DF_EntityKind_EntryPoint);
|
||||
df_entity_equip_name(symbol_name_entity, function_name);
|
||||
df_entity_equip_cfg_src(bp, DF_CfgSrc_Project);
|
||||
}
|
||||
else
|
||||
{
|
||||
df_entity_mark_for_deletion(bp);
|
||||
}
|
||||
}
|
||||
df_cmd_list_push(arena, cmds, ¶ms, df_cmd_spec_from_core_cmd_kind(DF_CoreCmdKind_AddBreakpoint));
|
||||
}break;
|
||||
|
||||
//- rjf: watches
|
||||
|
||||
@@ -1588,6 +1588,8 @@ internal String8 df_eval_view_rule_from_key(DF_EvalView *eval_view, DF_ExpandKey
|
||||
|
||||
//- rjf: evaluation value string builder helpers
|
||||
internal String8 df_string_from_ascii_value(Arena *arena, U8 val);
|
||||
internal String8 df_string_from_hresult_facility_code(U32 code);
|
||||
internal String8 df_string_from_hresult_code(U32 code);
|
||||
internal String8 df_string_from_simple_typed_eval(Arena *arena, DF_EvalVizStringFlags flags, U32 radix, E_Eval eval);
|
||||
|
||||
//- rjf: writing values back to child processes
|
||||
|
||||
@@ -36,6 +36,10 @@ DF_EntityKindTable:
|
||||
//- rjf: auto view rules
|
||||
{AutoViewRule auto_view_rule 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 "Label" Binoculars "Auto View Rule" }
|
||||
|
||||
//- rjf: file path maps
|
||||
{SourcePath source_path 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 "Path" Null "Source Path" }
|
||||
{DestPath dest_path 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 "Path" Null "Destination Path" }
|
||||
|
||||
//- rjf: watch pins
|
||||
{WatchPin watch_pin 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 1 "Expression" Pin "Watch Pin" }
|
||||
|
||||
@@ -347,13 +351,10 @@ DF_CoreCmdTable:// | | | |
|
||||
{RelocateEntity 0 0 Null Nil 0 0 0 0 0 0 Null "relocate_entity" "Relocate Entity" "Relocates an entity." "" }
|
||||
|
||||
//- rjf: breakpoints
|
||||
{AddBreakpoint 0 0 Null Nil 0 0 0 0 0 0 CircleFilled "add_breakpoint" "Add Breakpoint" "Places a breakpoint at a given location (file path and line number, address, or symbol name)." "" }
|
||||
{ToggleBreakpoint 0 0 Null Nil 0 0 0 0 0 0 CircleFilled "toggle_breakpoint" "Toggle Breakpoint" "Places or removes a breakpoint at a given location (file path and line number, address, or symbol name)." "" }
|
||||
|
||||
//- rjf: [OLD] breakpoints
|
||||
{TextBreakpoint 0 1 FilePath Nil 0 0 0 0 0 0 CircleFilled "text_breakpoint" "Text Breakpoint" "Places or removes a breakpoint on the specified line of source code." "" }
|
||||
{AddressBreakpoint 1 1 VirtualAddr Nil 0 0 0 0 1 1 CircleFilled "address_breakpoint" "Address Breakpoint" "Places or removes a breakpoint on the specified address." "" }
|
||||
{FunctionBreakpoint 1 1 String Nil 0 0 0 0 1 1 CircleFilled "function_breakpoint" "Function Breakpoint" "Places or removes a breakpoint on the first address(es) of the specified function." "" }
|
||||
{AddBreakpoint 0 1 Null Nil 0 0 0 0 0 0 CircleFilled "add_breakpoint" "Add Breakpoint" "Places a breakpoint at a given location (file path and line number, address, or symbol name)." "" }
|
||||
{AddAddressBreakpoint 1 0 VirtualAddr Nil 0 0 0 0 1 1 CircleFilled "add_address_breakpoint" "Add Address Breakpoint" "Places a breakpoint on the specified address." "" }
|
||||
{AddFunctionBreakpoint 1 0 String Nil 0 0 0 0 1 1 CircleFilled "add_function_breakpoint" "Add Function Breakpoint" "Places a breakpoint on the first address(es) of the specified function." "" }
|
||||
{ToggleBreakpoint 0 1 Null Nil 0 0 0 0 0 0 CircleFilled "toggle_breakpoint" "Toggle Breakpoint" "Places or removes a breakpoint at a given location (file path and line number, address, or symbol name)." "" }
|
||||
{ToggleBreakpointAtCursor 1 1 Null Nil 0 0 0 0 0 0 CircleFilled "toggle_breakpoint_cursor" "Toggle Breakpoint At Cursor" "Places or removes a breakpoint on the line on which the active cursor sits." "" }
|
||||
{RemoveBreakpoint 1 1 Entity Breakpoint 0 0 0 0 0 1 Trash "remove_breakpoint" "Remove Breakpoint" "Removes an existing breakpoint." "" }
|
||||
{EnableBreakpoint 1 1 Entity Breakpoint 0 0 0 0 0 1 CheckFilled "enable_breakpoint" "Enable Breakpoint" "Enables a breakpoint." "" }
|
||||
|
||||
@@ -32,7 +32,7 @@ Rng1U64 df_g_cmd_param_slot_range_table[24] =
|
||||
{OffsetOf(DF_CmdParams, inline_depth), OffsetOf(DF_CmdParams, inline_depth) + sizeof(U64)},
|
||||
};
|
||||
|
||||
DF_IconKind df_g_entity_kind_icon_kind_table[28] =
|
||||
DF_IconKind df_g_entity_kind_icon_kind_table[30] =
|
||||
{
|
||||
DF_IconKind_Null,
|
||||
DF_IconKind_Null,
|
||||
@@ -40,6 +40,8 @@ DF_IconKind_Machine,
|
||||
DF_IconKind_FileOutline,
|
||||
DF_IconKind_FileOutline,
|
||||
DF_IconKind_Binoculars,
|
||||
DF_IconKind_Null,
|
||||
DF_IconKind_Null,
|
||||
DF_IconKind_Pin,
|
||||
DF_IconKind_Binoculars,
|
||||
DF_IconKind_Binoculars,
|
||||
@@ -64,7 +66,7 @@ DF_IconKind_Null,
|
||||
DF_IconKind_Null,
|
||||
};
|
||||
|
||||
String8 df_g_entity_kind_display_string_table[28] =
|
||||
String8 df_g_entity_kind_display_string_table[30] =
|
||||
{
|
||||
str8_lit_comp("Nil"),
|
||||
str8_lit_comp("Root"),
|
||||
@@ -72,6 +74,8 @@ str8_lit_comp("Machine"),
|
||||
str8_lit_comp("File"),
|
||||
str8_lit_comp("Override File Link"),
|
||||
str8_lit_comp("Auto View Rule"),
|
||||
str8_lit_comp("Source Path"),
|
||||
str8_lit_comp("Destination Path"),
|
||||
str8_lit_comp("Watch Pin"),
|
||||
str8_lit_comp("Watch"),
|
||||
str8_lit_comp("View Rule"),
|
||||
@@ -96,7 +100,7 @@ str8_lit_comp("Conversion Failure"),
|
||||
str8_lit_comp("EndedProcess"),
|
||||
};
|
||||
|
||||
String8 df_g_entity_kind_name_lower_table[28] =
|
||||
String8 df_g_entity_kind_name_lower_table[30] =
|
||||
{
|
||||
str8_lit_comp("nil"),
|
||||
str8_lit_comp("root"),
|
||||
@@ -104,6 +108,8 @@ str8_lit_comp("machine"),
|
||||
str8_lit_comp("file"),
|
||||
str8_lit_comp("override_file_link"),
|
||||
str8_lit_comp("auto_view_rule"),
|
||||
str8_lit_comp("source_path"),
|
||||
str8_lit_comp("dest_path"),
|
||||
str8_lit_comp("watch_pin"),
|
||||
str8_lit_comp("watch"),
|
||||
str8_lit_comp("view_rule"),
|
||||
@@ -128,7 +134,7 @@ str8_lit_comp("conversion_fail"),
|
||||
str8_lit_comp("ended_process"),
|
||||
};
|
||||
|
||||
String8 df_g_entity_kind_name_label_table[28] =
|
||||
String8 df_g_entity_kind_name_label_table[30] =
|
||||
{
|
||||
str8_lit_comp("Label"),
|
||||
str8_lit_comp("Label"),
|
||||
@@ -136,6 +142,8 @@ str8_lit_comp("Label"),
|
||||
str8_lit_comp("Label"),
|
||||
str8_lit_comp("Label"),
|
||||
str8_lit_comp("Label"),
|
||||
str8_lit_comp("Path"),
|
||||
str8_lit_comp("Path"),
|
||||
str8_lit_comp("Expression"),
|
||||
str8_lit_comp("Expression"),
|
||||
str8_lit_comp("Expression"),
|
||||
@@ -160,7 +168,7 @@ str8_lit_comp("Label"),
|
||||
str8_lit_comp("Label"),
|
||||
};
|
||||
|
||||
DF_EntityKindFlags df_g_entity_kind_flags_table[28] =
|
||||
DF_EntityKindFlags df_g_entity_kind_flags_table[30] =
|
||||
{
|
||||
(0*DF_EntityKindFlag_CanDelete) | (0*DF_EntityKindFlag_CanFreeze) | (0*DF_EntityKindFlag_CanEdit) | (0*DF_EntityKindFlag_CanRename) | (0*DF_EntityKindFlag_CanEnable) | (0*DF_EntityKindFlag_CanCondition) | (0*DF_EntityKindFlag_CanDuplicate) | (0*DF_EntityKindFlag_LeafMutUserConfig | 0*DF_EntityKindFlag_LeafMutProjectConfig | 0*DF_EntityKindFlag_LeafMutSoftHalt | 0*DF_EntityKindFlag_LeafMutDebugInfoMap | 0*DF_EntityKindFlag_TreeMutUserConfig | 0*DF_EntityKindFlag_TreeMutProjectConfig | 0*DF_EntityKindFlag_TreeMutSoftHalt | 0*DF_EntityKindFlag_TreeMutDebugInfoMap | 0*DF_EntityKindFlag_NameIsCode | 0*DF_EntityKindFlag_NameIsPath | 0*DF_EntityKindFlag_UserDefinedLifetime),
|
||||
(0*DF_EntityKindFlag_CanDelete) | (0*DF_EntityKindFlag_CanFreeze) | (0*DF_EntityKindFlag_CanEdit) | (0*DF_EntityKindFlag_CanRename) | (0*DF_EntityKindFlag_CanEnable) | (0*DF_EntityKindFlag_CanCondition) | (0*DF_EntityKindFlag_CanDuplicate) | (0*DF_EntityKindFlag_LeafMutUserConfig | 0*DF_EntityKindFlag_LeafMutProjectConfig | 0*DF_EntityKindFlag_LeafMutSoftHalt | 0*DF_EntityKindFlag_LeafMutDebugInfoMap | 0*DF_EntityKindFlag_TreeMutUserConfig | 0*DF_EntityKindFlag_TreeMutProjectConfig | 0*DF_EntityKindFlag_TreeMutSoftHalt | 0*DF_EntityKindFlag_TreeMutDebugInfoMap | 0*DF_EntityKindFlag_NameIsCode | 0*DF_EntityKindFlag_NameIsPath | 0*DF_EntityKindFlag_UserDefinedLifetime),
|
||||
@@ -168,6 +176,8 @@ DF_EntityKindFlags df_g_entity_kind_flags_table[28] =
|
||||
(0*DF_EntityKindFlag_CanDelete) | (0*DF_EntityKindFlag_CanFreeze) | (0*DF_EntityKindFlag_CanEdit) | (0*DF_EntityKindFlag_CanRename) | (0*DF_EntityKindFlag_CanEnable) | (0*DF_EntityKindFlag_CanCondition) | (0*DF_EntityKindFlag_CanDuplicate) | (0*DF_EntityKindFlag_LeafMutUserConfig | 0*DF_EntityKindFlag_LeafMutProjectConfig | 0*DF_EntityKindFlag_LeafMutSoftHalt | 0*DF_EntityKindFlag_LeafMutDebugInfoMap | 0*DF_EntityKindFlag_TreeMutUserConfig | 0*DF_EntityKindFlag_TreeMutProjectConfig | 0*DF_EntityKindFlag_TreeMutSoftHalt | 0*DF_EntityKindFlag_TreeMutDebugInfoMap | 0*DF_EntityKindFlag_NameIsCode | 0*DF_EntityKindFlag_NameIsPath | 0*DF_EntityKindFlag_UserDefinedLifetime),
|
||||
(0*DF_EntityKindFlag_CanDelete) | (0*DF_EntityKindFlag_CanFreeze) | (0*DF_EntityKindFlag_CanEdit) | (0*DF_EntityKindFlag_CanRename) | (0*DF_EntityKindFlag_CanEnable) | (0*DF_EntityKindFlag_CanCondition) | (0*DF_EntityKindFlag_CanDuplicate) | (1*DF_EntityKindFlag_LeafMutUserConfig | 0*DF_EntityKindFlag_LeafMutProjectConfig | 0*DF_EntityKindFlag_LeafMutSoftHalt | 0*DF_EntityKindFlag_LeafMutDebugInfoMap | 0*DF_EntityKindFlag_TreeMutUserConfig | 0*DF_EntityKindFlag_TreeMutProjectConfig | 0*DF_EntityKindFlag_TreeMutSoftHalt | 0*DF_EntityKindFlag_TreeMutDebugInfoMap | 0*DF_EntityKindFlag_NameIsCode | 0*DF_EntityKindFlag_NameIsPath | 0*DF_EntityKindFlag_UserDefinedLifetime),
|
||||
(0*DF_EntityKindFlag_CanDelete) | (0*DF_EntityKindFlag_CanFreeze) | (0*DF_EntityKindFlag_CanEdit) | (0*DF_EntityKindFlag_CanRename) | (0*DF_EntityKindFlag_CanEnable) | (0*DF_EntityKindFlag_CanCondition) | (0*DF_EntityKindFlag_CanDuplicate) | (0*DF_EntityKindFlag_LeafMutUserConfig | 0*DF_EntityKindFlag_LeafMutProjectConfig | 0*DF_EntityKindFlag_LeafMutSoftHalt | 0*DF_EntityKindFlag_LeafMutDebugInfoMap | 0*DF_EntityKindFlag_TreeMutUserConfig | 0*DF_EntityKindFlag_TreeMutProjectConfig | 0*DF_EntityKindFlag_TreeMutSoftHalt | 0*DF_EntityKindFlag_TreeMutDebugInfoMap | 0*DF_EntityKindFlag_NameIsCode | 0*DF_EntityKindFlag_NameIsPath | 1*DF_EntityKindFlag_UserDefinedLifetime),
|
||||
(0*DF_EntityKindFlag_CanDelete) | (0*DF_EntityKindFlag_CanFreeze) | (0*DF_EntityKindFlag_CanEdit) | (0*DF_EntityKindFlag_CanRename) | (0*DF_EntityKindFlag_CanEnable) | (0*DF_EntityKindFlag_CanCondition) | (0*DF_EntityKindFlag_CanDuplicate) | (0*DF_EntityKindFlag_LeafMutUserConfig | 0*DF_EntityKindFlag_LeafMutProjectConfig | 0*DF_EntityKindFlag_LeafMutSoftHalt | 0*DF_EntityKindFlag_LeafMutDebugInfoMap | 0*DF_EntityKindFlag_TreeMutUserConfig | 0*DF_EntityKindFlag_TreeMutProjectConfig | 0*DF_EntityKindFlag_TreeMutSoftHalt | 0*DF_EntityKindFlag_TreeMutDebugInfoMap | 0*DF_EntityKindFlag_NameIsCode | 0*DF_EntityKindFlag_NameIsPath | 0*DF_EntityKindFlag_UserDefinedLifetime),
|
||||
(0*DF_EntityKindFlag_CanDelete) | (0*DF_EntityKindFlag_CanFreeze) | (0*DF_EntityKindFlag_CanEdit) | (0*DF_EntityKindFlag_CanRename) | (0*DF_EntityKindFlag_CanEnable) | (0*DF_EntityKindFlag_CanCondition) | (0*DF_EntityKindFlag_CanDuplicate) | (0*DF_EntityKindFlag_LeafMutUserConfig | 0*DF_EntityKindFlag_LeafMutProjectConfig | 0*DF_EntityKindFlag_LeafMutSoftHalt | 0*DF_EntityKindFlag_LeafMutDebugInfoMap | 0*DF_EntityKindFlag_TreeMutUserConfig | 0*DF_EntityKindFlag_TreeMutProjectConfig | 0*DF_EntityKindFlag_TreeMutSoftHalt | 0*DF_EntityKindFlag_TreeMutDebugInfoMap | 0*DF_EntityKindFlag_NameIsCode | 0*DF_EntityKindFlag_NameIsPath | 0*DF_EntityKindFlag_UserDefinedLifetime),
|
||||
(1*DF_EntityKindFlag_CanDelete) | (0*DF_EntityKindFlag_CanFreeze) | (0*DF_EntityKindFlag_CanEdit) | (1*DF_EntityKindFlag_CanRename) | (0*DF_EntityKindFlag_CanEnable) | (0*DF_EntityKindFlag_CanCondition) | (1*DF_EntityKindFlag_CanDuplicate) | (0*DF_EntityKindFlag_LeafMutUserConfig | 0*DF_EntityKindFlag_LeafMutProjectConfig | 0*DF_EntityKindFlag_LeafMutSoftHalt | 0*DF_EntityKindFlag_LeafMutDebugInfoMap | 0*DF_EntityKindFlag_TreeMutUserConfig | 0*DF_EntityKindFlag_TreeMutProjectConfig | 0*DF_EntityKindFlag_TreeMutSoftHalt | 0*DF_EntityKindFlag_TreeMutDebugInfoMap | 1*DF_EntityKindFlag_NameIsCode | 0*DF_EntityKindFlag_NameIsPath | 1*DF_EntityKindFlag_UserDefinedLifetime),
|
||||
(1*DF_EntityKindFlag_CanDelete) | (0*DF_EntityKindFlag_CanFreeze) | (0*DF_EntityKindFlag_CanEdit) | (1*DF_EntityKindFlag_CanRename) | (1*DF_EntityKindFlag_CanEnable) | (0*DF_EntityKindFlag_CanCondition) | (1*DF_EntityKindFlag_CanDuplicate) | (0*DF_EntityKindFlag_LeafMutUserConfig | 0*DF_EntityKindFlag_LeafMutProjectConfig | 0*DF_EntityKindFlag_LeafMutSoftHalt | 0*DF_EntityKindFlag_LeafMutDebugInfoMap | 0*DF_EntityKindFlag_TreeMutUserConfig | 0*DF_EntityKindFlag_TreeMutProjectConfig | 0*DF_EntityKindFlag_TreeMutSoftHalt | 0*DF_EntityKindFlag_TreeMutDebugInfoMap | 1*DF_EntityKindFlag_NameIsCode | 0*DF_EntityKindFlag_NameIsPath | 1*DF_EntityKindFlag_UserDefinedLifetime),
|
||||
(1*DF_EntityKindFlag_CanDelete) | (0*DF_EntityKindFlag_CanFreeze) | (0*DF_EntityKindFlag_CanEdit) | (1*DF_EntityKindFlag_CanRename) | (1*DF_EntityKindFlag_CanEnable) | (0*DF_EntityKindFlag_CanCondition) | (1*DF_EntityKindFlag_CanDuplicate) | (0*DF_EntityKindFlag_LeafMutUserConfig | 0*DF_EntityKindFlag_LeafMutProjectConfig | 0*DF_EntityKindFlag_LeafMutSoftHalt | 0*DF_EntityKindFlag_LeafMutDebugInfoMap | 0*DF_EntityKindFlag_TreeMutUserConfig | 0*DF_EntityKindFlag_TreeMutProjectConfig | 0*DF_EntityKindFlag_TreeMutSoftHalt | 0*DF_EntityKindFlag_TreeMutDebugInfoMap | 1*DF_EntityKindFlag_NameIsCode | 0*DF_EntityKindFlag_NameIsPath | 1*DF_EntityKindFlag_UserDefinedLifetime),
|
||||
@@ -224,7 +234,7 @@ DF_CoreCmdKind_Null,
|
||||
DF_CoreCmdKind_Null,
|
||||
};
|
||||
|
||||
DF_CmdSpecInfo df_g_core_cmd_kind_spec_info_table[222] =
|
||||
DF_CmdSpecInfo df_g_core_cmd_kind_spec_info_table[221] =
|
||||
{
|
||||
{ str8_lit_comp(""), str8_lit_comp(""), str8_lit_comp(""), str8_lit_comp(""), (DF_CmdSpecFlag_ListInUI*0)|(DF_CmdSpecFlag_ListInIPCDocs*0), {DF_CmdParamSlot_Null, DF_EntityKind_Nil, (DF_CmdQueryFlag_AllowFiles*0)|(DF_CmdQueryFlag_AllowFolders*0)|(DF_CmdQueryFlag_CodeInput*0)|(DF_CmdQueryFlag_KeepOldInput*0)|(DF_CmdQueryFlag_SelectOldInput*0)|(DF_CmdQueryFlag_Required*0)}, DF_IconKind_Null},
|
||||
{ str8_lit_comp("exit"), str8_lit_comp("Exits the debugger."), str8_lit_comp("quit,close,abort"), str8_lit_comp("Exit"), (DF_CmdSpecFlag_ListInUI*1)|(DF_CmdSpecFlag_ListInIPCDocs*1), {DF_CmdParamSlot_Null, DF_EntityKind_Nil, (DF_CmdQueryFlag_AllowFiles*0)|(DF_CmdQueryFlag_AllowFolders*0)|(DF_CmdQueryFlag_CodeInput*0)|(DF_CmdQueryFlag_KeepOldInput*0)|(DF_CmdQueryFlag_SelectOldInput*0)|(DF_CmdQueryFlag_Required*0)}, DF_IconKind_X},
|
||||
@@ -390,11 +400,10 @@ DF_CmdSpecInfo df_g_core_cmd_kind_spec_info_table[222] =
|
||||
{ str8_lit_comp("edit_entity"), str8_lit_comp("Opens the editor for an entity."), str8_lit_comp(""), str8_lit_comp("Edit Entity"), (DF_CmdSpecFlag_ListInUI*0)|(DF_CmdSpecFlag_ListInIPCDocs*0), {DF_CmdParamSlot_Null, DF_EntityKind_Nil, (DF_CmdQueryFlag_AllowFiles*0)|(DF_CmdQueryFlag_AllowFolders*0)|(DF_CmdQueryFlag_CodeInput*0)|(DF_CmdQueryFlag_KeepOldInput*0)|(DF_CmdQueryFlag_SelectOldInput*0)|(DF_CmdQueryFlag_Required*0)}, DF_IconKind_Null},
|
||||
{ str8_lit_comp("duplicate_entity"), str8_lit_comp("Duplicates an entity."), str8_lit_comp(""), str8_lit_comp("Duplicate Entity"), (DF_CmdSpecFlag_ListInUI*0)|(DF_CmdSpecFlag_ListInIPCDocs*0), {DF_CmdParamSlot_Null, DF_EntityKind_Nil, (DF_CmdQueryFlag_AllowFiles*0)|(DF_CmdQueryFlag_AllowFolders*0)|(DF_CmdQueryFlag_CodeInput*0)|(DF_CmdQueryFlag_KeepOldInput*0)|(DF_CmdQueryFlag_SelectOldInput*0)|(DF_CmdQueryFlag_Required*0)}, DF_IconKind_Null},
|
||||
{ str8_lit_comp("relocate_entity"), str8_lit_comp("Relocates an entity."), str8_lit_comp(""), str8_lit_comp("Relocate Entity"), (DF_CmdSpecFlag_ListInUI*0)|(DF_CmdSpecFlag_ListInIPCDocs*0), {DF_CmdParamSlot_Null, DF_EntityKind_Nil, (DF_CmdQueryFlag_AllowFiles*0)|(DF_CmdQueryFlag_AllowFolders*0)|(DF_CmdQueryFlag_CodeInput*0)|(DF_CmdQueryFlag_KeepOldInput*0)|(DF_CmdQueryFlag_SelectOldInput*0)|(DF_CmdQueryFlag_Required*0)}, DF_IconKind_Null},
|
||||
{ str8_lit_comp("add_breakpoint"), str8_lit_comp("Places a breakpoint at a given location (file path and line number, address, or symbol name)."), str8_lit_comp(""), str8_lit_comp("Add Breakpoint"), (DF_CmdSpecFlag_ListInUI*0)|(DF_CmdSpecFlag_ListInIPCDocs*0), {DF_CmdParamSlot_Null, DF_EntityKind_Nil, (DF_CmdQueryFlag_AllowFiles*0)|(DF_CmdQueryFlag_AllowFolders*0)|(DF_CmdQueryFlag_CodeInput*0)|(DF_CmdQueryFlag_KeepOldInput*0)|(DF_CmdQueryFlag_SelectOldInput*0)|(DF_CmdQueryFlag_Required*0)}, DF_IconKind_CircleFilled},
|
||||
{ str8_lit_comp("toggle_breakpoint"), str8_lit_comp("Places or removes a breakpoint at a given location (file path and line number, address, or symbol name)."), str8_lit_comp(""), str8_lit_comp("Toggle Breakpoint"), (DF_CmdSpecFlag_ListInUI*0)|(DF_CmdSpecFlag_ListInIPCDocs*0), {DF_CmdParamSlot_Null, DF_EntityKind_Nil, (DF_CmdQueryFlag_AllowFiles*0)|(DF_CmdQueryFlag_AllowFolders*0)|(DF_CmdQueryFlag_CodeInput*0)|(DF_CmdQueryFlag_KeepOldInput*0)|(DF_CmdQueryFlag_SelectOldInput*0)|(DF_CmdQueryFlag_Required*0)}, DF_IconKind_CircleFilled},
|
||||
{ str8_lit_comp("text_breakpoint"), str8_lit_comp("Places or removes a breakpoint on the specified line of source code."), str8_lit_comp(""), str8_lit_comp("Text Breakpoint"), (DF_CmdSpecFlag_ListInUI*0)|(DF_CmdSpecFlag_ListInIPCDocs*1), {DF_CmdParamSlot_FilePath, DF_EntityKind_Nil, (DF_CmdQueryFlag_AllowFiles*0)|(DF_CmdQueryFlag_AllowFolders*0)|(DF_CmdQueryFlag_CodeInput*0)|(DF_CmdQueryFlag_KeepOldInput*0)|(DF_CmdQueryFlag_SelectOldInput*0)|(DF_CmdQueryFlag_Required*0)}, DF_IconKind_CircleFilled},
|
||||
{ str8_lit_comp("address_breakpoint"), str8_lit_comp("Places or removes a breakpoint on the specified address."), str8_lit_comp(""), str8_lit_comp("Address Breakpoint"), (DF_CmdSpecFlag_ListInUI*1)|(DF_CmdSpecFlag_ListInIPCDocs*1), {DF_CmdParamSlot_VirtualAddr, DF_EntityKind_Nil, (DF_CmdQueryFlag_AllowFiles*0)|(DF_CmdQueryFlag_AllowFolders*0)|(DF_CmdQueryFlag_CodeInput*1)|(DF_CmdQueryFlag_KeepOldInput*0)|(DF_CmdQueryFlag_SelectOldInput*0)|(DF_CmdQueryFlag_Required*1)}, DF_IconKind_CircleFilled},
|
||||
{ str8_lit_comp("function_breakpoint"), str8_lit_comp("Places or removes a breakpoint on the first address(es) of the specified function."), str8_lit_comp(""), str8_lit_comp("Function Breakpoint"), (DF_CmdSpecFlag_ListInUI*1)|(DF_CmdSpecFlag_ListInIPCDocs*1), {DF_CmdParamSlot_String, DF_EntityKind_Nil, (DF_CmdQueryFlag_AllowFiles*0)|(DF_CmdQueryFlag_AllowFolders*0)|(DF_CmdQueryFlag_CodeInput*1)|(DF_CmdQueryFlag_KeepOldInput*0)|(DF_CmdQueryFlag_SelectOldInput*0)|(DF_CmdQueryFlag_Required*1)}, DF_IconKind_CircleFilled},
|
||||
{ str8_lit_comp("add_breakpoint"), str8_lit_comp("Places a breakpoint at a given location (file path and line number, address, or symbol name)."), str8_lit_comp(""), str8_lit_comp("Add Breakpoint"), (DF_CmdSpecFlag_ListInUI*0)|(DF_CmdSpecFlag_ListInIPCDocs*1), {DF_CmdParamSlot_Null, DF_EntityKind_Nil, (DF_CmdQueryFlag_AllowFiles*0)|(DF_CmdQueryFlag_AllowFolders*0)|(DF_CmdQueryFlag_CodeInput*0)|(DF_CmdQueryFlag_KeepOldInput*0)|(DF_CmdQueryFlag_SelectOldInput*0)|(DF_CmdQueryFlag_Required*0)}, DF_IconKind_CircleFilled},
|
||||
{ str8_lit_comp("add_address_breakpoint"), str8_lit_comp("Places a breakpoint on the specified address."), str8_lit_comp(""), str8_lit_comp("Add Address Breakpoint"), (DF_CmdSpecFlag_ListInUI*1)|(DF_CmdSpecFlag_ListInIPCDocs*0), {DF_CmdParamSlot_VirtualAddr, DF_EntityKind_Nil, (DF_CmdQueryFlag_AllowFiles*0)|(DF_CmdQueryFlag_AllowFolders*0)|(DF_CmdQueryFlag_CodeInput*1)|(DF_CmdQueryFlag_KeepOldInput*0)|(DF_CmdQueryFlag_SelectOldInput*0)|(DF_CmdQueryFlag_Required*1)}, DF_IconKind_CircleFilled},
|
||||
{ str8_lit_comp("add_function_breakpoint"), str8_lit_comp("Places a breakpoint on the first address(es) of the specified function."), str8_lit_comp(""), str8_lit_comp("Add Function Breakpoint"), (DF_CmdSpecFlag_ListInUI*1)|(DF_CmdSpecFlag_ListInIPCDocs*0), {DF_CmdParamSlot_String, DF_EntityKind_Nil, (DF_CmdQueryFlag_AllowFiles*0)|(DF_CmdQueryFlag_AllowFolders*0)|(DF_CmdQueryFlag_CodeInput*1)|(DF_CmdQueryFlag_KeepOldInput*0)|(DF_CmdQueryFlag_SelectOldInput*0)|(DF_CmdQueryFlag_Required*1)}, DF_IconKind_CircleFilled},
|
||||
{ str8_lit_comp("toggle_breakpoint"), str8_lit_comp("Places or removes a breakpoint at a given location (file path and line number, address, or symbol name)."), str8_lit_comp(""), str8_lit_comp("Toggle Breakpoint"), (DF_CmdSpecFlag_ListInUI*0)|(DF_CmdSpecFlag_ListInIPCDocs*1), {DF_CmdParamSlot_Null, DF_EntityKind_Nil, (DF_CmdQueryFlag_AllowFiles*0)|(DF_CmdQueryFlag_AllowFolders*0)|(DF_CmdQueryFlag_CodeInput*0)|(DF_CmdQueryFlag_KeepOldInput*0)|(DF_CmdQueryFlag_SelectOldInput*0)|(DF_CmdQueryFlag_Required*0)}, DF_IconKind_CircleFilled},
|
||||
{ str8_lit_comp("toggle_breakpoint_cursor"), str8_lit_comp("Places or removes a breakpoint on the line on which the active cursor sits."), str8_lit_comp(""), str8_lit_comp("Toggle Breakpoint At Cursor"), (DF_CmdSpecFlag_ListInUI*1)|(DF_CmdSpecFlag_ListInIPCDocs*1), {DF_CmdParamSlot_Null, DF_EntityKind_Nil, (DF_CmdQueryFlag_AllowFiles*0)|(DF_CmdQueryFlag_AllowFolders*0)|(DF_CmdQueryFlag_CodeInput*0)|(DF_CmdQueryFlag_KeepOldInput*0)|(DF_CmdQueryFlag_SelectOldInput*0)|(DF_CmdQueryFlag_Required*0)}, DF_IconKind_CircleFilled},
|
||||
{ str8_lit_comp("remove_breakpoint"), str8_lit_comp("Removes an existing breakpoint."), str8_lit_comp(""), str8_lit_comp("Remove Breakpoint"), (DF_CmdSpecFlag_ListInUI*1)|(DF_CmdSpecFlag_ListInIPCDocs*1), {DF_CmdParamSlot_Entity, DF_EntityKind_Breakpoint, (DF_CmdQueryFlag_AllowFiles*0)|(DF_CmdQueryFlag_AllowFolders*0)|(DF_CmdQueryFlag_CodeInput*0)|(DF_CmdQueryFlag_KeepOldInput*0)|(DF_CmdQueryFlag_SelectOldInput*0)|(DF_CmdQueryFlag_Required*1)}, DF_IconKind_Trash},
|
||||
{ str8_lit_comp("enable_breakpoint"), str8_lit_comp("Enables a breakpoint."), str8_lit_comp(""), str8_lit_comp("Enable Breakpoint"), (DF_CmdSpecFlag_ListInUI*1)|(DF_CmdSpecFlag_ListInIPCDocs*1), {DF_CmdParamSlot_Entity, DF_EntityKind_Breakpoint, (DF_CmdQueryFlag_AllowFiles*0)|(DF_CmdQueryFlag_AllowFolders*0)|(DF_CmdQueryFlag_CodeInput*0)|(DF_CmdQueryFlag_KeepOldInput*0)|(DF_CmdQueryFlag_SelectOldInput*0)|(DF_CmdQueryFlag_Required*1)}, DF_IconKind_CheckFilled},
|
||||
|
||||
@@ -23,6 +23,8 @@ DF_EntityKind_Machine,
|
||||
DF_EntityKind_File,
|
||||
DF_EntityKind_OverrideFileLink,
|
||||
DF_EntityKind_AutoViewRule,
|
||||
DF_EntityKind_SourcePath,
|
||||
DF_EntityKind_DestPath,
|
||||
DF_EntityKind_WatchPin,
|
||||
DF_EntityKind_Watch,
|
||||
DF_EntityKind_ViewRule,
|
||||
@@ -215,10 +217,9 @@ DF_CoreCmdKind_EditEntity,
|
||||
DF_CoreCmdKind_DuplicateEntity,
|
||||
DF_CoreCmdKind_RelocateEntity,
|
||||
DF_CoreCmdKind_AddBreakpoint,
|
||||
DF_CoreCmdKind_AddAddressBreakpoint,
|
||||
DF_CoreCmdKind_AddFunctionBreakpoint,
|
||||
DF_CoreCmdKind_ToggleBreakpoint,
|
||||
DF_CoreCmdKind_TextBreakpoint,
|
||||
DF_CoreCmdKind_AddressBreakpoint,
|
||||
DF_CoreCmdKind_FunctionBreakpoint,
|
||||
DF_CoreCmdKind_ToggleBreakpointAtCursor,
|
||||
DF_CoreCmdKind_RemoveBreakpoint,
|
||||
DF_CoreCmdKind_EnableBreakpoint,
|
||||
@@ -467,11 +468,11 @@ struct {B32 *value_ptr; String8 name;} DEV_toggle_table[] =
|
||||
};
|
||||
C_LINKAGE_BEGIN
|
||||
extern Rng1U64 df_g_cmd_param_slot_range_table[24];
|
||||
extern DF_IconKind df_g_entity_kind_icon_kind_table[28];
|
||||
extern String8 df_g_entity_kind_display_string_table[28];
|
||||
extern String8 df_g_entity_kind_name_lower_table[28];
|
||||
extern String8 df_g_entity_kind_name_label_table[28];
|
||||
extern DF_EntityKindFlags df_g_entity_kind_flags_table[28];
|
||||
extern DF_IconKind df_g_entity_kind_icon_kind_table[30];
|
||||
extern String8 df_g_entity_kind_display_string_table[30];
|
||||
extern String8 df_g_entity_kind_name_lower_table[30];
|
||||
extern String8 df_g_entity_kind_name_label_table[30];
|
||||
extern DF_EntityKindFlags df_g_entity_kind_flags_table[30];
|
||||
extern String8 df_g_cfg_src_string_table[4];
|
||||
extern DF_CoreCmdKind df_g_cfg_src_load_cmd_kind_table[4];
|
||||
extern DF_CoreCmdKind df_g_cfg_src_write_cmd_kind_table[4];
|
||||
|
||||
+5
-13
@@ -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")))
|
||||
|
||||
@@ -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
@@ -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);
|
||||
|
||||
@@ -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] =
|
||||
|
||||
@@ -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];
|
||||
|
||||
Reference in New Issue
Block a user