Class reference
EngineDebugger
Inherits Object
Exposes the internal debugger.
Description
EngineDebugger handles the communication between the editor and the running game. It is active in the running game. Messages can be sent/received through it. It also manages the profilers.
Methods
void clear_breakpoints()
Clears all breakpoints.
void debug(bool can_continue = true, bool is_error_breakpoint = false)
bool can_continue = true, bool is_error_breakpoint = false)Starts a debug break in script execution, optionally specifying whether the program can continue based on can_continue and whether the break was due to a breakpoint.
int get_depth() const
int get_depth() constReturns the current debug depth.
int get_lines_left() const
int get_lines_left() constReturns the number of lines that remain.
bool has_capture(StringName name)
bool has_capture(StringName name)Returns true if a capture with the given name is present otherwise false.
bool has_profiler(StringName name)
bool has_profiler(StringName name)Returns true if a profiler with the given name is present otherwise false.
void insert_breakpoint(int line, StringName source)
int line, StringName source)Inserts a new breakpoint with the given source and line.
bool is_active()
bool is_active()Returns true if the debugger is active otherwise false.
bool is_breakpoint(int line, StringName source) const
bool is_breakpoint(int line, StringName source) constReturns true if the given source and line represent an existing breakpoint.
bool is_profiling(StringName name)
bool is_profiling(StringName name)Returns true if a profiler with the given name is present and active otherwise false.
bool is_skipping_breakpoints() const
bool is_skipping_breakpoints() constReturns true if the debugger is skipping breakpoints otherwise false.
void line_poll()
Forces a processing loop of debugger events. The purpose of this method is just processing events every now and then when the script might get too busy, so that bugs like infinite loops can be caught.
void profiler_add_frame_data(StringName name, Array data)
StringName name, Array data)Calls the add callable of the profiler with given name and data.
void profiler_enable(StringName name, bool enable, Array arguments = [])
StringName name, bool enable, Array arguments = [])Calls the toggle callable of the profiler with given name and arguments. Enables/Disables the same profiler depending on enable argument.
void register_message_capture(StringName name, Callable callable)
StringName name, Callable callable)Registers a message capture with given name. If name is "my_message" then messages starting with "my_message:" will be called with the given callable. The callable must accept a message string and a data array as argument. The callable should return true if the message is recognized. Note: The callable will receive the message with the prefix stripped, unlike EditorDebuggerPlugin._capture(). See the EditorDebuggerPlugin description for an example.
void register_profiler(StringName name, EngineProfiler profiler)
StringName name, EngineProfiler profiler)Registers a profiler with the given name. See EngineProfiler for more information.
void remove_breakpoint(int line, StringName source)
int line, StringName source)Removes a breakpoint with the given source and line.
void script_debug(ScriptLanguage language, bool can_continue = true, bool is_error_breakpoint = false)
ScriptLanguage language, bool can_continue = true, bool is_error_breakpoint = false)Starts a debug break in script execution, optionally specifying whether the program can continue based on can_continue and whether the break was due to a breakpoint.
void send_message(String message, Array data)
String message, Array data)Sends a message with given message and data array.
void set_depth(int depth)
int depth)Sets the current debugging depth.
void set_lines_left(int lines)
int lines)Sets the current debugging lines that remain.
void unregister_message_capture(StringName name)
StringName name)Unregisters the message capture with given name.
void unregister_profiler(StringName name)
StringName name)Unregisters a profiler with given name.