mirror of
https://github.com/Ed94/raddebugger.git
synced 2026-10-02 05:58:41 +00:00
290 lines
36 KiB
Plaintext
290 lines
36 KiB
Plaintext
// Copyright (c) Epic Games Tools
|
|
// Licensed under the MIT license (https://opensource.org/license/mit/)
|
|
|
|
////////////////////////////////
|
|
//~ rjf: Built-In Command Tables
|
|
|
|
@table(name ui_vis ipc_docs_vis q_expr q_slot q_view q_ent_kind q_ctrl_ent_kind q_allow_files q_allow_folders q_keep_oi q_select_oi q_is_code q_floating q_required canonical_icon string display_name desc search_tags filter_tags)
|
|
// / | | | | \___ _________________________________/ | | | | | |
|
|
// / | | | | \ / | | | | | |
|
|
D_CmdTable: // | | | | | | | | | | | |
|
|
{
|
|
//- rjf: low-level target control operations
|
|
{LaunchAndRun 1 1 "query:targets" Cfg null Target Null 0 0 0 0 0 1 1 Play "launch_and_run" "Launch and Run" "Starts debugging a new instance of a target, then runs." "launch,start,run,target" "" }
|
|
{LaunchAndStepInto 1 1 "query:targets" Cfg null Target Null 0 0 0 0 0 1 1 PlayStepForward "launch_and_step_into" "Launch and Step Into" "Starts debugging a new instance of a target, then stops at the program's entry point." "launch,start,entry,point" "" }
|
|
{Kill 1 1 "query:processes" Process null Nil Process 0 0 0 0 0 1 1 X "kill" "Kill" "Kills the specified existing attached process(es)." "stop,kill" "" }
|
|
{KillAll 1 1 "" Null null Nil Null 0 0 0 0 0 0 0 Stop "kill_all" "Kill All" "Kills all attached processes." "stop,kill,all" "" }
|
|
{Detach 1 1 "query:processes" Process null Nil Process 0 0 0 0 0 1 1 Null "detach" "Detach" "Detaches the specified attached process(es)." "detach" "" }
|
|
{Continue 1 1 "" Null null Nil Null 0 0 0 0 0 0 0 Play "continue" "Continue" "Continues executing all attached processes." "" "" }
|
|
{StepIntoInst 1 1 "" Null null Nil Null 0 0 0 0 0 0 0 StepInto "step_into_inst" "Step Into (Assembly)" "Performs a step that goes into calls, at the instruction level." "single,step,thread" "" }
|
|
{StepOverInst 1 1 "" Null null Nil Null 0 0 0 0 0 0 0 StepOver "step_over_inst" "Step Over (Assembly)" "Performs a step that skips calls, at the instruction level." "single,step,thread" "" }
|
|
{StepIntoLine 1 1 "" Null null Nil Null 0 0 0 0 0 0 0 StepInto "step_into_line" "Step Into (Line)" "Performs a step that goes into calls, at the source code line level." "step,thread" "" }
|
|
{StepOverLine 1 1 "" Null null Nil Null 0 0 0 0 0 0 0 StepOver "step_over_line" "Step Over (Line)" "Performs a step that skips calls, at the source code line level." "step,thread" "" }
|
|
{StepOut 1 1 "" Null null Nil Null 0 0 0 0 0 0 0 StepOut "step_out" "Step Out" "Runs to the first instruction after the current scope is exited." "" "" }
|
|
{StepToExit 1 1 "" Null null Nil Null 0 0 0 0 0 0 0 StepOut "step_to_exit" "Step To Exit" "Runs to the first encountered instruction which will exit the current scope." "" "" }
|
|
{Halt 1 1 "" Null null Nil Null 0 0 0 0 0 0 0 Pause "halt" "Halt" "Halts all attached processes." "pause" "" }
|
|
{SoftHaltRefresh 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 Refresh "soft_halt_refresh" "Soft Halt Refresh" "Interrupts all attached processes to collect data, and then resumes them." "" "" }
|
|
{SetThreadIP 0 1 "" Vaddr null Nil Null 0 0 0 0 1 1 1 Null "set_thread_ip" "Set Thread IP" "Sets the specified thread's instruction pointer at the specified address." "" "" }
|
|
|
|
//- rjf: high-level composite target control operations
|
|
{RunToLine 1 1 "" Null null Nil Null 0 0 0 0 0 0 0 Play "run_to_line" "Run To Line" "Runs until a particular source line is hit." "" "{text_pt_commands}" }
|
|
{RunToName 1 1 "query:procedures" String null Nil Null 0 0 0 0 0 1 1 Play "run_to_name" "Run To Name" "Runs until a particular symbol name is hit." "" "{text_pt_commands}" }
|
|
{Run 1 1 "" Null null Nil Null 0 0 0 0 0 0 0 Play "run" "Run" "Runs all targets after starting them if they have not been started yet." "play" "" }
|
|
{Restart 1 1 "" Null null Nil Null 0 0 0 0 0 0 0 Redo "restart" "Restart" "Kills all attached processes, then launches all active targets." "restart,retry" "" }
|
|
{StepInto 1 1 "" Null null Nil Null 0 0 0 0 0 0 0 StepInto "step_into" "Step Into" "Steps once, possibly into function calls, for either source lines or instructions (whichever is selected)." "" "" }
|
|
{StepOver 1 1 "" Null null Nil Null 0 0 0 0 0 0 0 StepOver "step_over" "Step Over" "Steps once, always over function calls, for either source lines or instructions." "" "" }
|
|
|
|
//- rjf: debug control context management operations
|
|
{FreezeThread 1 1 "query:threads" Thread null Nil Thread 0 0 0 0 0 1 1 Locked "freeze_thread" "Freeze Thread" "Freezes the passed thread." "callstack,unwind" "" }
|
|
{ThawThread 1 1 "query:threads" Thread null Nil Thread 0 0 0 0 0 1 1 Unlocked "thaw_thread" "Thaw Thread" "Thaws the passed thread." "" "" }
|
|
{FreezeProcess 1 1 "query:processes" Process null Nil Process 0 0 0 0 0 1 1 Locked "freeze_process" "Freeze Process" "Freezes the passed process." "" "" }
|
|
{ThawProcess 1 1 "query:processes" Process null Nil Process 0 0 0 0 0 1 1 Unlocked "thaw_process" "Thaw Process" "Thaws the passed process." "" "" }
|
|
{FreezeMachine 0 1 "query:machines" Machine null Nil Machine 0 0 0 0 0 1 1 Locked "freeze_machine" "Freeze Machine" "Freezes the passed machine." "" "" }
|
|
{ThawMachine 0 1 "query:machines" Machine null Nil Machine 0 0 0 0 0 1 1 Unlocked "thaw_machine" "Thaw Machine" "Thaws the passed machine." "" "" }
|
|
{FreezeLocalMachine 1 1 "" Null null Nil Null 0 0 0 0 0 0 0 Machine "freeze_local_machine" "Freeze Local Machine" "Freezes the local machine." "" "" }
|
|
{ThawLocalMachine 1 1 "" Null null Nil Null 0 0 0 0 0 0 0 Machine "thaw_local_machine" "Thaw Local Machine" "Thaws the local machine." "" "" }
|
|
{FreezeEntity 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 Unlocked "freeze_entity" "Freeze Entity" "Freezes an entity." "" "" }
|
|
{ThawEntity 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 Locked "thaw_entity" "Thaw Entity" "Thaws an entity." "" "" }
|
|
|
|
//- rjf: entity decoration
|
|
{SetEntityColor 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 Null "set_entity_color" "Set Entity Color" "Sets the passed entity's color." "" "" }
|
|
{SetEntityName 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 Null "set_entity_name" "Set Entity Name" "Sets the passed entity's name." "" "" }
|
|
|
|
//- rjf: modules
|
|
{DownloadModuleDebugInfo 1 1 "query:modules" CtrlEntity null Nil Null 0 0 0 0 0 1 1 Module "download_module_debug_info" "Download Module Debug Info" "Tries to download a module's debug info from symbol server(s)." "" "{module_commands}" }
|
|
|
|
//- rjf: attaching
|
|
{Attach 1 1 "query:unattached_processes" PID null Nil Null 0 0 0 0 0 1 1 Null "attach" "Attach" "Attaches to a process that is already running on the local machine." "" "" }
|
|
|
|
//- rjf: crash dump opening
|
|
{OpenCrashDump 0 0 `folder:\\"$input\\"` FilePath null Nil Null 0 0 0 0 0 1 1 FileOutline "open_crash_dump" "Open Crash Dump" "Opens a crash dump file and recreates debuggee state at the time of the crash." "" "" }
|
|
}
|
|
|
|
@enum D_CmdKind:
|
|
{
|
|
Null,
|
|
@expand(D_CmdTable, a) `$(a.name)`,
|
|
COUNT,
|
|
}
|
|
|
|
////////////////////////////////
|
|
//~ rjf: Developer Toggles
|
|
|
|
@table(name)
|
|
D_DevToggleTable:
|
|
{
|
|
{always_refresh}
|
|
{simulate_lag}
|
|
{draw_ui_text_pos}
|
|
{draw_ui_focus_debug}
|
|
{draw_ui_box_heatmap}
|
|
{eval_compiler_tooltips}
|
|
{eval_watch_key_tooltips}
|
|
{cmd_context_tooltips}
|
|
{updating_indicator}
|
|
}
|
|
|
|
@gen
|
|
{
|
|
@expand(D_DevToggleTable a) `global B32 DEV_$(a.name) = 0;`
|
|
}
|
|
|
|
@gen
|
|
{
|
|
`struct {B32 *value_ptr; String8 name;} DEV_toggle_table[] =`;
|
|
`{`;
|
|
@expand(D_DevToggleTable a) `{&DEV_$(a.name), str8_lit_comp("$(a.name)")},`
|
|
`};`;
|
|
}
|
|
|
|
////////////////////////////////
|
|
//~ rjf: Entity Kinds
|
|
|
|
@table(name code_name display_string)
|
|
D_EntityKindTable:
|
|
{
|
|
{Root root "Root" }
|
|
{Machine machine "Machine" }
|
|
{Process process "Process" }
|
|
{Thread thread "Thread" }
|
|
{Module module "Module" }
|
|
{EntryPoint entry_point "Entry Point" }
|
|
{LaunchMsgID launch_msg_id "Launch Message ID" }
|
|
{DebugInfoPath debug_info_path "Debug Info Path" }
|
|
{PendingThreadName pending_thread_name "Pending Thread Name" }
|
|
{PendingThreadColor pending_thread_color "Pending Thread Color" }
|
|
{Breakpoint breakpoint "Breakpoint" }
|
|
{AddressRangeAnnotation address_range_annotation "Address Range Annotation" }
|
|
}
|
|
|
|
@enum D_EntityKind:
|
|
{
|
|
Null,
|
|
@expand(D_EntityKindTable a) `$(a.name)`,
|
|
COUNT,
|
|
}
|
|
|
|
@data(String8) d_entity_kind_code_name_table:
|
|
{
|
|
`{0}`,
|
|
@expand(D_EntityKindTable a) `str8_lit_comp("$(a.code_name)")`
|
|
}
|
|
|
|
@data(String8) d_entity_kind_display_string_table:
|
|
{
|
|
`{0}`,
|
|
@expand(D_EntityKindTable a) `str8_lit_comp("$(a.display_name)")`
|
|
}
|
|
|
|
////////////////////////////////
|
|
//~ rjf: Exception Codes
|
|
|
|
@table(name lower_name code default display_string)
|
|
D_ExceptionCodeKindTable:
|
|
{
|
|
{Win32CtrlC win32_ctrl_c 0x40010005 1 "(Win32) Control-C" }
|
|
{Win32CtrlBreak win32_ctrl_break 0x40010008 1 "(Win32) Control-Break" }
|
|
{Win32WinRTOriginateError win32_win_rt_originate_error 0x40080201 0 "(Win32) WinRT Originate Error" }
|
|
{Win32WinRTTransformError win32_win_rt_transform_error 0x40080202 0 "(Win32) WinRT Transform Error" }
|
|
{Win32RPCCallCancelled win32_rpc_call_cancelled 0x0000071a 0 "(Win32) RPC Call Cancelled" }
|
|
{Win32DatatypeMisalignment win32_datatype_misalignment 0x80000002 0 "(Win32) Data Type Misalignment" }
|
|
{Win32AccessViolation win32_access_violation 0xc0000005 1 "(Win32) Access Violation" }
|
|
{Win32InPageError win32_in_page_error 0xc0000006 0 "(Win32) In Page Error" }
|
|
{Win32InvalidHandle win32_invalid_handle 0xc0000008 1 "(Win32) Invalid Handle Specified" }
|
|
{Win32NotEnoughQuota win32_not_enough_quota 0xc0000017 0 "(Win32) Not Enough Quota" }
|
|
{Win32IllegalInstruction win32_illegal_instruction 0xc000001d 0 "(Win32) Illegal Instruction" }
|
|
{Win32CannotContinueException win32_cannot_continue_exception 0xc0000025 0 "(Win32) Cannot Continue From Exception" }
|
|
{Win32InvalidExceptionDisposition win32_invalid_exception_disposition 0xc0000026 0 "(Win32) Invalid Exception Disposition Returned By Handler" }
|
|
{Win32ArrayBoundsExceeded win32_array_bounds_exceeded 0xc000008c 0 "(Win32) Array Bounds Exceeded" }
|
|
{Win32FloatingPointDenormalOperand win32_floating_point_denormal_operand 0xc000008d 0 "(Win32) Floating-Point Denormal Operand" }
|
|
{Win32FloatingPointDivisionByZero win32_floating_point_division_by_zero 0xc000008e 0 "(Win32) Floating-Point Division By Zero" }
|
|
{Win32FloatingPointInexactResult win32_floating_point_inexact_result 0xc000008f 0 "(Win32) Floating-Point Inexact Result" }
|
|
{Win32FloatingPointInvalidOperation win32_floating_point_invalid_operation 0xc0000090 0 "(Win32) Floating-Point Invalid Operation" }
|
|
{Win32FloatingPointOverflow win32_floating_point_overflow 0xc0000091 0 "(Win32) Floating-Point Overflow" }
|
|
{Win32FloatingPointStackCheck win32_floating_point_stack_check 0xc0000092 0 "(Win32) Floating-Point Stack Check" }
|
|
{Win32FloatingPointUnderflow win32_floating_point_underflow 0xc0000093 0 "(Win32) Floating-Point Underflow" }
|
|
{Win32IntegerDivisionByZero win32_integer_division_by_zero 0xc0000094 0 "(Win32) Integer Division By Zero" }
|
|
{Win32IntegerOverflow win32_integer_overflow 0xc0000095 0 "(Win32) Integer Overflow" }
|
|
{Win32PrivilegedInstruction win32_privileged_instruction 0xc0000096 0 "(Win32) Privileged Instruction" }
|
|
{Win32StackOverflow win32_stack_overflow 0xc00000fd 0 "(Win32) Stack Overflow" }
|
|
{Win32UnableToLocateDLL win32_unable_to_locate_dll 0xc0000135 0 "(Win32) Unable To Locate DLL" }
|
|
{Win32OrdinalNotFound win32_ordinal_not_found 0xc0000138 0 "(Win32) Ordinal Not Found" }
|
|
{Win32EntryPointNotFound win32_entry_point_not_found 0xc0000139 0 "(Win32) Entry Point Not Found" }
|
|
{Win32DLLInitializationFailed win32_dll_initialization_failed 0xc0000142 0 "(Win32) DLL Initialization Failed" }
|
|
{Win32FloatingPointSSEMultipleFaults win32_floating_point_sse_multiple_faults 0xc00002b4 0 "(Win32) Floating Point SSE Multiple Faults" }
|
|
{Win32FloatingPointSSEMultipleTraps win32_floating_point_sse_multiple_traps 0xc00002b5 0 "(Win32) Floating Point SSE Multiple Traps" }
|
|
{Win32AssertionFailed win32_assertion_failed 0xc0000420 1 "(Win32) Assertion Failed" }
|
|
{Win32ModuleNotFound win32_module_not_found 0xc06d007e 0 "(Win32) Module Not Found" }
|
|
{Win32ProcedureNotFound win32_procedure_not_found 0xc06d007f 0 "(Win32) Procedure Not Found" }
|
|
{Win32SanitizerErrorDetected win32_sanitizer_error_detected 0xe073616e 1 "(Win32) Sanitizer Error Detected" }
|
|
{Win32SanitizerRawAccessViolation win32_sanitizer_raw_access_violation 0xe0736171 0 "(Win32) Sanitizer Raw Access Violation" }
|
|
{Win32DirectXDebugLayer win32_directx_debug_layer 0x0000087a 1 "(Win32) DirectX Debug Layer" }
|
|
}
|
|
|
|
@enum D_ExceptionCodeKind:
|
|
{
|
|
Null,
|
|
@expand(D_ExceptionCodeKindTable a) `$(a.name)`,
|
|
COUNT,
|
|
}
|
|
|
|
@data(U32) d_exception_code_kind_code_table:
|
|
{
|
|
`0`;
|
|
@expand(D_ExceptionCodeKindTable a) `$(a.code)`;
|
|
}
|
|
|
|
@data(String8) d_exception_code_kind_display_string_table:
|
|
{
|
|
`{0}`;
|
|
@expand(D_ExceptionCodeKindTable a) `str8_lit_comp("$(a.display_string)")`;
|
|
}
|
|
|
|
@data(String8) d_exception_code_kind_lowercase_code_string_table:
|
|
{
|
|
`{0}`;
|
|
@expand(D_ExceptionCodeKindTable a) `str8_lit_comp("$(a.lower_name)")`;
|
|
}
|
|
|
|
@data(B8) d_exception_code_kind_default_enable_table:
|
|
{
|
|
`0`;
|
|
@expand(D_ExceptionCodeKindTable a) `$(a.default)`;
|
|
}
|
|
|
|
////////////////////////////////
|
|
//~ rjf: Exception Sub-Codes
|
|
|
|
@table(name, value)
|
|
DL_ExceptionSubCodeKindTable:
|
|
{
|
|
{ W32_FAST_FAIL_LEGACY_GS_VIOLATION 0 }
|
|
{ W32_FAST_FAIL_VTGUARD_CHECK_FAILURE 1 }
|
|
{ W32_FAST_FAIL_STACK_COOKIE_CHECK_FAILURE 2 }
|
|
{ W32_FAST_FAIL_CORRUPT_LIST_ENTRY 3 }
|
|
{ W32_FAST_FAIL_INCORRECT_STACK 4 }
|
|
{ W32_FAST_FAIL_INVALID_ARG 5 }
|
|
{ W32_FAST_FAIL_GS_COOKIE_INIT 6 }
|
|
{ W32_FAST_FAIL_FATAL_APP_EXIT 7 }
|
|
{ W32_FAST_FAIL_RANGE_CHECK_FAILURE 8 }
|
|
{ W32_FAST_FAIL_UNSAFE_REGISTRY_ACCESS 9 }
|
|
{ W32_FAST_FAIL_GUARD_ICALL_CHECK_FAILURE 10 }
|
|
{ W32_FAST_FAIL_GUARD_WRITE_CHECK_FAILURE 11 }
|
|
{ W32_FAST_FAIL_INVALID_FIBER_SWITCH 12 }
|
|
{ W32_FAST_FAIL_INVALID_SET_OF_CONTEXT 13 }
|
|
{ W32_FAST_FAIL_INVALID_REFERENCE_COUNT 14 }
|
|
{ W32_FAST_FAIL_INVALID_JUMP_BUFFER 18 }
|
|
{ W32_FAST_FAIL_MRDATA_MODIFIED 19 }
|
|
{ W32_FAST_FAIL_CERTIFICATION_FAILURE 20 }
|
|
{ W32_FAST_FAIL_INVALID_EXCEPTION_CHAIN 21 }
|
|
{ W32_FAST_FAIL_CRYPTO_LIBRARY 22 }
|
|
{ W32_FAST_FAIL_INVALID_CALL_IN_DLL_CALLOUT 23 }
|
|
{ W32_FAST_FAIL_INVALID_IMAGE_BASE 24 }
|
|
{ W32_FAST_FAIL_DLOAD_PROTECTION_FAILURE 25 }
|
|
{ W32_FAST_FAIL_UNSAFE_EXTENSION_CALL 26 }
|
|
{ W32_FAST_FAIL_DEPRECATED_SERVICE_INVOKED 27 }
|
|
{ W32_FAST_FAIL_INVALID_BUFFER_ACCESS 28 }
|
|
{ W32_FAST_FAIL_INVALID_BALANCED_TREE 29 }
|
|
{ W32_FAST_FAIL_INVALID_NEXT_THREAD 30 }
|
|
{ W32_FAST_FAIL_GUARD_ICALL_CHECK_SUPPRESSED 31 }
|
|
{ W32_FAST_FAIL_APCS_DISABLED 32 }
|
|
{ W32_FAST_FAIL_INVALID_IDLE_STATE 33 }
|
|
{ W32_FAST_FAIL_MRDATA_PROTECTION_FAILURE 34 }
|
|
{ W32_FAST_FAIL_UNEXPECTED_HEAP_EXCEPTION 35 }
|
|
{ W32_FAST_FAIL_INVALID_LOCK_STATE 36 }
|
|
{ W32_FAST_FAIL_GUARD_JUMPTABLE 37 }
|
|
{ W32_FAST_FAIL_INVALID_LONGJUMP_TARGET 38 }
|
|
{ W32_FAST_FAIL_INVALID_DISPATCH_CONTEXT 39 }
|
|
{ W32_FAST_FAIL_INVALID_THREAD 40 }
|
|
{ W32_FAST_FAIL_INVALID_SYSCALL_NUMBER 41 }
|
|
{ W32_FAST_FAIL_INVALID_FILE_OPERATION 42 }
|
|
{ W32_FAST_FAIL_LPAC_ACCESS_DENIED 43 }
|
|
{ W32_FAST_FAIL_GUARD_SS_FAILURE 44 }
|
|
{ W32_FAST_FAIL_LOADER_CONTINUITY_FAILURE 45 }
|
|
{ W32_FAST_FAIL_GUARD_EXPORT_SUPPRESSION_FAILURE 46 }
|
|
{ W32_FAST_FAIL_INVALID_CONTROL_STACK 47 }
|
|
{ W32_FAST_FAIL_SET_CONTEXT_DENIED 48 }
|
|
{ W32_FAST_FAIL_INVALID_IAT 49 }
|
|
{ W32_FAST_FAIL_HEAP_METADATA_CORRUPTION 50 }
|
|
{ W32_FAST_FAIL_PAYLOAD_RESTRICTION_VIOLATION 51 }
|
|
{ W32_FAST_FAIL_LOW_LABEL_ACCESS_DENIED 52 }
|
|
{ W32_FAST_FAIL_ENCLAVE_CALL_FAILURE 53 }
|
|
{ W32_FAST_FAIL_UNHANDLED_LSS_EXCEPTON 54 }
|
|
{ W32_FAST_FAIL_ADMINLESS_ACCESS_DENIED 55 }
|
|
{ W32_FAST_FAIL_UNEXPECTED_CALL 56 }
|
|
{ W32_FAST_FAIL_CONTROL_INVALID_RETURN_ADDRESS 57 }
|
|
{ W32_FAST_FAIL_UNEXPECTED_HOST_BEHAVIOR 58 }
|
|
{ W32_FAST_FAIL_FLAGS_CORRUPTION 59 }
|
|
{ W32_FAST_FAIL_VEH_CORRUPTION 60 }
|
|
{ W32_FAST_FAIL_ETW_CORRUPTION 61 }
|
|
{ W32_FAST_FAIL_RIO_ABORT 62 }
|
|
{ W32_FAST_FAIL_INVALID_PFN 63 }
|
|
{ W32_FAST_FAIL_GUARD_ICALL_CHECK_FAILURE_XFG 64 }
|
|
{ W32_FAST_FAIL_CAST_GUARD 65 }
|
|
{ W32_FAST_FAIL_HOST_VISIBILITY_CHANGE 66 }
|
|
{ W32_FAST_FAIL_KERNEL_CET_SHADOW_STACK_ASSIST 67 }
|
|
{ W32_FAST_FAIL_PATCH_CALLBACK_FAILED 68 }
|
|
{ W32_FAST_FAIL_NTDLL_PATCH_FAILED 69 }
|
|
{ W32_FAST_FAIL_INVALID_FLS_DATA 70 }
|
|
}
|