class Godot::DebuggerSessionController

Defined in:

editor/debugger/session_controller.cr

Constructors

Instance Method Summary

Instance methods inherited from class Object

try?(&)
try?
try?

Constructor Detail

def self.new(session_id : Int32, session : EditorDebuggerSession, r2_path : String = "r2") #

Instance Method Detail

def active_context : Debugger::ExecutionContext | Nil #

def attach(pid : Int64) : Bool #

Attaches radare2 to the target process ID


def cleanup : Void #

Cleans up active tab and detaches debugger on session end or plugin unload


def create_and_add_tab : CrystalRadareSessionTab | Nil #

Creates and embeds the session tab into Godot's Debugger bottom dock


def debug_addon(addon_name : String, binary_name : String | Nil = nil) : Void #

Registers an addon for context-aware classification and debugging


def detach : Void #

Detaches radare2 from the process


def driver : Debugger::RadareDriver #

def handle_remote_dead_pointer(message : String) : Void #

Handles remote dead pointer notification


def handle_remote_fault(message : String) : Void #

Handles remote four-boundary crash notifications from running game


def handle_remote_stale_vtable(message : String) : Void #

Handles remote stale vtable notification after hot-reload


def lockstep_enabled : Bool #

def lockstep_enabled=(lockstep_enabled : Bool) #

def lockstep_pause : Void #

Cooperatively pauses this session due to a peer lockstep break event


def lockstep_resume : Void #

Cooperatively resumes this session when peer resumes


def log_rpc(sender_id : Int32, method_name : String, args_summary : String = "") : Void #

Logs a multiplayer RPC event for tracing network activity across sessions


def on_lockstep_signal : Proc(Int32, Bool, Nil) | Nil #

Callback invoked when this session stops or resumes: (origin_session_id, is_paused)


def on_lockstep_signal=(on_lockstep_signal : Proc(Int32, Bool, Nil) | Nil) #

Callback invoked when this session stops or resumes: (origin_session_id, is_paused)


def poll : Void #

Non-blocking per-frame polling hook


def remove_breakpoint(file : String, line : Int32) : Void #

Removes a breakpoint from this session's radare2 instance


def role : String #

def rpc_trace_log : Array(String) #

def session : EditorDebuggerSession #

def session_id : Int32 #

def set_breakpoint(file : String, line : Int32) : Void #

Synchronizes a breakpoint with this session's radare2 instance



def target_pid : Int64 | Nil #

def update_role(role : String, pid : Int64) : Void #

Updates the detected multiplayer role (e.g. Server, Client 1)