| 
									
										
										
										
											2023-01-05 13:25:55 +01:00
										 |  |  | /**************************************************************************/ | 
					
						
							|  |  |  | /*  script_editor_debugger.h                                              */ | 
					
						
							|  |  |  | /**************************************************************************/ | 
					
						
							|  |  |  | /*                         This file is part of:                          */ | 
					
						
							|  |  |  | /*                             GODOT ENGINE                               */ | 
					
						
							|  |  |  | /*                        https://godotengine.org                         */ | 
					
						
							|  |  |  | /**************************************************************************/ | 
					
						
							|  |  |  | /* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */ | 
					
						
							|  |  |  | /* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur.                  */ | 
					
						
							|  |  |  | /*                                                                        */ | 
					
						
							|  |  |  | /* Permission is hereby granted, free of charge, to any person obtaining  */ | 
					
						
							|  |  |  | /* a copy of this software and associated documentation files (the        */ | 
					
						
							|  |  |  | /* "Software"), to deal in the Software without restriction, including    */ | 
					
						
							|  |  |  | /* without limitation the rights to use, copy, modify, merge, publish,    */ | 
					
						
							|  |  |  | /* distribute, sublicense, and/or sell copies of the Software, and to     */ | 
					
						
							|  |  |  | /* permit persons to whom the Software is furnished to do so, subject to  */ | 
					
						
							|  |  |  | /* the following conditions:                                              */ | 
					
						
							|  |  |  | /*                                                                        */ | 
					
						
							|  |  |  | /* The above copyright notice and this permission notice shall be         */ | 
					
						
							|  |  |  | /* included in all copies or substantial portions of the Software.        */ | 
					
						
							|  |  |  | /*                                                                        */ | 
					
						
							|  |  |  | /* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,        */ | 
					
						
							|  |  |  | /* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF     */ | 
					
						
							|  |  |  | /* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. */ | 
					
						
							|  |  |  | /* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY   */ | 
					
						
							|  |  |  | /* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,   */ | 
					
						
							|  |  |  | /* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE      */ | 
					
						
							|  |  |  | /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.                 */ | 
					
						
							|  |  |  | /**************************************************************************/ | 
					
						
							| 
									
										
										
										
											2018-01-05 00:50:27 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-04-18 14:38:54 -03:00
										 |  |  | #ifndef SCRIPT_EDITOR_DEBUGGER_H
 | 
					
						
							|  |  |  | #define SCRIPT_EDITOR_DEBUGGER_H
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-02-24 06:21:15 +01:00
										 |  |  | #include "core/os/os.h"
 | 
					
						
							| 
									
										
										
										
											2020-02-07 02:52:05 +01:00
										 |  |  | #include "editor/debugger/editor_debugger_inspector.h"
 | 
					
						
							| 
									
										
										
										
											2020-02-24 06:21:15 +01:00
										 |  |  | #include "editor/debugger/editor_debugger_node.h"
 | 
					
						
							|  |  |  | #include "editor/debugger/editor_debugger_server.h"
 | 
					
						
							| 
									
										
										
										
											2017-03-05 16:44:50 +01:00
										 |  |  | #include "scene/gui/button.h"
 | 
					
						
							| 
									
										
										
										
											2020-02-24 06:21:15 +01:00
										 |  |  | #include "scene/gui/margin_container.h"
 | 
					
						
							| 
									
										
										
										
											2016-05-21 21:18:16 -03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-04-18 14:38:54 -03:00
										 |  |  | class Tree; | 
					
						
							|  |  |  | class LineEdit; | 
					
						
							|  |  |  | class TabContainer; | 
					
						
							|  |  |  | class RichTextLabel; | 
					
						
							|  |  |  | class TextureButton; | 
					
						
							|  |  |  | class AcceptDialog; | 
					
						
							|  |  |  | class TreeItem; | 
					
						
							|  |  |  | class HSplitContainer; | 
					
						
							| 
									
										
										
										
											2015-08-04 09:47:32 -03:00
										 |  |  | class ItemList; | 
					
						
							| 
									
										
										
										
											2016-05-21 21:18:16 -03:00
										 |  |  | class EditorProfiler; | 
					
						
							| 
									
										
										
										
											2022-02-12 02:46:22 +01:00
										 |  |  | class EditorFileDialog; | 
					
						
							| 
									
										
										
										
											2019-09-20 17:58:06 -03:00
										 |  |  | class EditorVisualProfiler; | 
					
						
							| 
									
										
										
										
											2020-06-04 18:48:57 +05:30
										 |  |  | class EditorPerformanceProfiler; | 
					
						
							| 
									
										
										
										
											2020-02-07 02:52:05 +01:00
										 |  |  | class SceneDebuggerTree; | 
					
						
							| 
									
										
										
										
											2020-05-18 20:25:49 +05:30
										 |  |  | class EditorDebuggerPlugin; | 
					
						
							| 
									
										
										
										
											2021-06-04 19:39:38 +01:00
										 |  |  | class DebugAdapterProtocol; | 
					
						
							|  |  |  | class DebugAdapterParser; | 
					
						
							| 
									
										
										
										
											2016-05-22 19:28:37 -03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-11-18 09:42:28 +01:00
										 |  |  | class ScriptEditorDebugger : public MarginContainer { | 
					
						
							|  |  |  | 	GDCLASS(ScriptEditorDebugger, MarginContainer); | 
					
						
							| 
									
										
										
										
											2015-04-18 14:38:54 -03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-02-07 02:52:05 +01:00
										 |  |  | 	friend class EditorDebuggerNode; | 
					
						
							| 
									
										
										
										
											2021-06-04 19:39:38 +01:00
										 |  |  | 	friend class DebugAdapterProtocol; | 
					
						
							|  |  |  | 	friend class DebugAdapterParser; | 
					
						
							| 
									
										
										
										
											2020-02-07 02:52:05 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-04-06 22:55:01 +02:00
										 |  |  | private: | 
					
						
							| 
									
										
										
										
											2017-08-22 14:16:08 -05:00
										 |  |  | 	enum MessageType { | 
					
						
							|  |  |  | 		MESSAGE_ERROR, | 
					
						
							|  |  |  | 		MESSAGE_WARNING, | 
					
						
							|  |  |  | 		MESSAGE_SUCCESS, | 
					
						
							|  |  |  | 	}; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-03-08 12:21:08 +01:00
										 |  |  | 	enum ProfilerType { | 
					
						
							|  |  |  | 		PROFILER_VISUAL, | 
					
						
							|  |  |  | 		PROFILER_SCRIPTS_SERVERS | 
					
						
							|  |  |  | 	}; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-04-18 02:07:05 +02:00
										 |  |  | 	enum Actions { | 
					
						
							|  |  |  | 		ACTION_COPY_ERROR, | 
					
						
							|  |  |  | 		ACTION_OPEN_SOURCE, | 
					
						
							| 
									
										
										
										
											2021-10-07 19:39:12 +01:00
										 |  |  | 		ACTION_DELETE_BREAKPOINT, | 
					
						
							|  |  |  | 		ACTION_DELETE_BREAKPOINTS_IN_FILE, | 
					
						
							|  |  |  | 		ACTION_DELETE_ALL_BREAKPOINTS, | 
					
						
							| 
									
										
										
										
											2021-04-18 02:07:05 +02:00
										 |  |  | 	}; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-04-04 15:06:57 +02:00
										 |  |  | 	AcceptDialog *msgdialog = nullptr; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	LineEdit *clicked_ctrl = nullptr; | 
					
						
							|  |  |  | 	LineEdit *clicked_ctrl_type = nullptr; | 
					
						
							|  |  |  | 	LineEdit *live_edit_root = nullptr; | 
					
						
							|  |  |  | 	Button *le_set = nullptr; | 
					
						
							|  |  |  | 	Button *le_clear = nullptr; | 
					
						
							|  |  |  | 	Button *export_csv = nullptr; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	VBoxContainer *errors_tab = nullptr; | 
					
						
							|  |  |  | 	Tree *error_tree = nullptr; | 
					
						
							|  |  |  | 	Button *expand_all_button = nullptr; | 
					
						
							|  |  |  | 	Button *collapse_all_button = nullptr; | 
					
						
							|  |  |  | 	Button *clear_button = nullptr; | 
					
						
							|  |  |  | 	PopupMenu *item_menu = nullptr; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	Tree *breakpoints_tree = nullptr; | 
					
						
							|  |  |  | 	PopupMenu *breakpoints_menu = nullptr; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	EditorFileDialog *file_dialog = nullptr; | 
					
						
							| 
									
										
										
										
											2020-03-17 13:46:18 +01:00
										 |  |  | 	enum FileDialogPurpose { | 
					
						
							|  |  |  | 		SAVE_MONITORS_CSV, | 
					
						
							|  |  |  | 		SAVE_VRAM_CSV, | 
					
						
							|  |  |  | 	}; | 
					
						
							|  |  |  | 	FileDialogPurpose file_dialog_purpose; | 
					
						
							| 
									
										
										
										
											2015-08-04 09:47:32 -03:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	int error_count; | 
					
						
							| 
									
										
										
										
											2018-08-16 08:41:03 +03:00
										 |  |  | 	int warning_count; | 
					
						
							| 
									
										
										
										
											2019-07-29 20:09:22 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	bool skip_breakpoints_value = false; | 
					
						
							| 
									
										
										
										
											2017-06-25 17:20:01 +08:00
										 |  |  | 	Ref<Script> stack_script; | 
					
						
							| 
									
										
										
										
											2015-12-12 10:09:50 -03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-04-04 15:06:57 +02:00
										 |  |  | 	TabContainer *tabs = nullptr; | 
					
						
							| 
									
										
										
										
											2015-04-18 14:38:54 -03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-04-04 15:06:57 +02:00
										 |  |  | 	Label *reason = nullptr; | 
					
						
							| 
									
										
										
										
											2015-04-18 14:38:54 -03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-04-04 15:06:57 +02:00
										 |  |  | 	Button *skip_breakpoints = nullptr; | 
					
						
							|  |  |  | 	Button *copy = nullptr; | 
					
						
							|  |  |  | 	Button *step = nullptr; | 
					
						
							|  |  |  | 	Button *next = nullptr; | 
					
						
							|  |  |  | 	Button *dobreak = nullptr; | 
					
						
							|  |  |  | 	Button *docontinue = nullptr; | 
					
						
							| 
									
										
										
										
											2020-02-07 02:52:05 +01:00
										 |  |  | 	// Reference to "Remote" tab in scene tree. Needed by _live_edit_set and buttons state.
 | 
					
						
							|  |  |  | 	// Each debugger should have it's tree in the future I guess.
 | 
					
						
							| 
									
										
										
										
											2020-04-02 01:20:12 +02:00
										 |  |  | 	const Tree *editor_remote_tree = nullptr; | 
					
						
							| 
									
										
										
										
											2015-04-18 14:38:54 -03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-05-13 15:04:37 +02:00
										 |  |  | 	HashMap<int, String> profiler_signature; | 
					
						
							| 
									
										
										
										
											2016-05-21 21:18:16 -03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-04-04 15:06:57 +02:00
										 |  |  | 	Tree *vmem_tree = nullptr; | 
					
						
							|  |  |  | 	Button *vmem_refresh = nullptr; | 
					
						
							|  |  |  | 	Button *vmem_export = nullptr; | 
					
						
							|  |  |  | 	LineEdit *vmem_total = nullptr; | 
					
						
							| 
									
										
										
										
											2015-10-20 19:19:19 -03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-04-04 15:06:57 +02:00
										 |  |  | 	Tree *stack_dump = nullptr; | 
					
						
							| 
									
										
										
										
											2022-01-12 14:53:32 +03:00
										 |  |  | 	LineEdit *search = nullptr; | 
					
						
							| 
									
										
										
										
											2022-04-04 15:06:57 +02:00
										 |  |  | 	EditorDebuggerInspector *inspector = nullptr; | 
					
						
							|  |  |  | 	SceneDebuggerTree *scene_tree = nullptr; | 
					
						
							| 
									
										
										
										
											2015-04-18 14:38:54 -03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-03-08 12:21:08 +01:00
										 |  |  | 	Ref<RemoteDebuggerPeer> peer; | 
					
						
							| 
									
										
										
										
											2015-04-18 14:38:54 -03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-03-05 16:44:50 +01:00
										 |  |  | 	HashMap<NodePath, int> node_path_cache; | 
					
						
							| 
									
										
										
										
											2015-08-02 12:29:37 -03:00
										 |  |  | 	int last_path_id; | 
					
						
							| 
									
										
										
										
											2022-05-13 15:04:37 +02:00
										 |  |  | 	HashMap<String, int> res_path_cache; | 
					
						
							| 
									
										
										
										
											2015-08-02 12:29:37 -03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-04-04 15:06:57 +02:00
										 |  |  | 	EditorProfiler *profiler = nullptr; | 
					
						
							|  |  |  | 	EditorVisualProfiler *visual_profiler = nullptr; | 
					
						
							|  |  |  | 	EditorPerformanceProfiler *performance_profiler = nullptr; | 
					
						
							| 
									
										
										
										
											2015-04-18 14:38:54 -03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-02-07 02:52:05 +01:00
										 |  |  | 	OS::ProcessID remote_pid = 0; | 
					
						
							|  |  |  | 	bool breaked = false; | 
					
						
							|  |  |  | 	bool can_debug = false; | 
					
						
							| 
									
										
										
										
											2021-06-04 19:39:38 +01:00
										 |  |  | 	bool move_to_foreground = true; | 
					
						
							| 
									
										
										
										
											2015-04-18 14:38:54 -03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-08-02 12:29:37 -03:00
										 |  |  | 	bool live_debug; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-02-24 06:21:15 +01:00
										 |  |  | 	EditorDebuggerNode::CameraOverride camera_override; | 
					
						
							| 
									
										
										
										
											2019-04-06 22:55:01 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-04-18 14:38:54 -03:00
										 |  |  | 	void _stack_dump_frame_selected(); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-02-21 23:07:49 +08:00
										 |  |  | 	void _file_selected(const String &p_file); | 
					
						
							| 
									
										
										
										
											2017-03-05 16:44:50 +01:00
										 |  |  | 	void _parse_message(const String &p_msg, const Array &p_data); | 
					
						
							| 
									
										
										
										
											2017-09-14 13:49:11 -04:00
										 |  |  | 	void _set_reason_text(const String &p_reason, MessageType p_type); | 
					
						
							| 
									
										
										
										
											2020-02-07 02:52:05 +01:00
										 |  |  | 	void _update_buttons_state(); | 
					
						
							|  |  |  | 	void _remote_object_selected(ObjectID p_object); | 
					
						
							|  |  |  | 	void _remote_object_edited(ObjectID, const String &p_prop, const Variant &p_value); | 
					
						
							|  |  |  | 	void _remote_object_property_updated(ObjectID p_id, const String &p_property); | 
					
						
							| 
									
										
										
										
											2015-04-18 14:38:54 -03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-10-21 09:50:44 -03:00
										 |  |  | 	void _video_mem_request(); | 
					
						
							| 
									
										
										
										
											2020-03-17 13:46:18 +01:00
										 |  |  | 	void _video_mem_export(); | 
					
						
							| 
									
										
										
										
											2015-08-02 12:29:37 -03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-03-05 16:44:50 +01:00
										 |  |  | 	int _get_node_path_cache(const NodePath &p_path); | 
					
						
							| 
									
										
										
										
											2015-08-02 12:29:37 -03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-03-05 16:44:50 +01:00
										 |  |  | 	int _get_res_path_cache(const String &p_path); | 
					
						
							| 
									
										
										
										
											2015-08-02 12:29:37 -03:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	void _live_edit_set(); | 
					
						
							|  |  |  | 	void _live_edit_clear(); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-03-09 14:58:40 +01:00
										 |  |  | 	void _method_changed(Object *p_base, const StringName &p_name, const Variant **p_args, int p_argcount); | 
					
						
							| 
									
										
										
										
											2017-03-05 16:44:50 +01:00
										 |  |  | 	void _property_changed(Object *p_base, const StringName &p_property, const Variant &p_value); | 
					
						
							| 
									
										
										
										
											2015-08-02 12:29:37 -03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-09-08 19:31:49 -04:00
										 |  |  | 	void _error_activated(); | 
					
						
							|  |  |  | 	void _error_selected(); | 
					
						
							| 
									
										
										
										
											2015-08-04 09:47:32 -03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-09-12 23:53:10 -03:00
										 |  |  | 	void _expand_errors_list(); | 
					
						
							|  |  |  | 	void _collapse_errors_list(); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-03-08 12:21:08 +01:00
										 |  |  | 	void _profiler_activate(bool p_enable, int p_profiler); | 
					
						
							| 
									
										
										
										
											2016-05-21 21:18:16 -03:00
										 |  |  | 	void _profiler_seeked(); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-12-18 01:16:11 +03:00
										 |  |  | 	void _clear_errors_list(); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-09-18 09:33:18 +02:00
										 |  |  | 	void _breakpoints_item_rmb_selected(const Vector2 &p_pos, MouseButton p_button); | 
					
						
							|  |  |  | 	void _error_tree_item_rmb_selected(const Vector2 &p_pos, MouseButton p_button); | 
					
						
							| 
									
										
										
										
											2017-12-18 01:16:11 +03:00
										 |  |  | 	void _item_menu_id_pressed(int p_option); | 
					
						
							| 
									
										
										
										
											2019-11-28 16:37:15 +01:00
										 |  |  | 	void _tab_changed(int p_tab); | 
					
						
							| 
									
										
										
										
											2017-10-17 22:37:25 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-02-07 02:52:05 +01:00
										 |  |  | 	void _put_msg(String p_message, Array p_data); | 
					
						
							| 
									
										
										
										
											2019-02-18 01:25:26 +01:00
										 |  |  | 	void _export_csv(); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-04-22 17:20:27 +01:00
										 |  |  | 	void _clear_execution(); | 
					
						
							| 
									
										
										
										
											2020-02-07 02:52:05 +01:00
										 |  |  | 	void _stop_and_notify(); | 
					
						
							| 
									
										
										
										
											2019-04-22 17:20:27 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-07-20 12:24:56 +01:00
										 |  |  | 	void _set_breakpoint(const String &p_path, const int &p_line, const bool &p_enabled); | 
					
						
							|  |  |  | 	void _clear_breakpoints(); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-10-07 19:39:12 +01:00
										 |  |  | 	void _breakpoint_tree_clicked(); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-04-18 14:38:54 -03:00
										 |  |  | protected: | 
					
						
							|  |  |  | 	void _notification(int p_what); | 
					
						
							|  |  |  | 	static void _bind_methods(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | public: | 
					
						
							| 
									
										
										
										
											2020-02-07 02:52:05 +01:00
										 |  |  | 	void request_remote_object(ObjectID p_obj_id); | 
					
						
							|  |  |  | 	void update_remote_object(ObjectID p_obj_id, const String &p_prop, const Variant &p_value); | 
					
						
							|  |  |  | 	Object *get_remote_object(ObjectID p_id); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	// Needed by _live_edit_set, buttons state.
 | 
					
						
							|  |  |  | 	void set_editor_remote_tree(const Tree *p_tree) { editor_remote_tree = p_tree; } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	void request_remote_tree(); | 
					
						
							|  |  |  | 	const SceneDebuggerTree *get_remote_tree(); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-03-08 12:21:08 +01:00
										 |  |  | 	void start(Ref<RemoteDebuggerPeer> p_peer); | 
					
						
							| 
									
										
										
										
											2015-04-18 14:38:54 -03:00
										 |  |  | 	void stop(); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-07-29 20:09:22 +02:00
										 |  |  | 	void debug_skip_breakpoints(); | 
					
						
							| 
									
										
										
										
											2018-02-13 19:46:45 +03:00
										 |  |  | 	void debug_copy(); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-04-18 14:38:54 -03:00
										 |  |  | 	void debug_next(); | 
					
						
							|  |  |  | 	void debug_step(); | 
					
						
							|  |  |  | 	void debug_break(); | 
					
						
							|  |  |  | 	void debug_continue(); | 
					
						
							| 
									
										
										
										
											2020-02-07 02:52:05 +01:00
										 |  |  | 	bool is_breaked() const { return breaked; } | 
					
						
							|  |  |  | 	bool is_debuggable() const { return can_debug; } | 
					
						
							| 
									
										
										
										
											2020-02-24 06:21:15 +01:00
										 |  |  | 	bool is_session_active() { return peer.is_valid() && peer->is_peer_connected(); }; | 
					
						
							| 
									
										
										
										
											2020-02-07 02:52:05 +01:00
										 |  |  | 	int get_remote_pid() const { return remote_pid; } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-06-04 19:39:38 +01:00
										 |  |  | 	bool is_move_to_foreground() const; | 
					
						
							|  |  |  | 	void set_move_to_foreground(const bool &p_move_to_foreground); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-02-07 02:52:05 +01:00
										 |  |  | 	int get_error_count() const { return error_count; } | 
					
						
							|  |  |  | 	int get_warning_count() const { return warning_count; } | 
					
						
							|  |  |  | 	String get_stack_script_file() const; | 
					
						
							|  |  |  | 	int get_stack_script_line() const; | 
					
						
							|  |  |  | 	int get_stack_script_frame() const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-06-04 19:39:38 +01:00
										 |  |  | 	bool request_stack_dump(const int &p_frame); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-02-07 02:52:05 +01:00
										 |  |  | 	void update_tabs(); | 
					
						
							| 
									
										
										
										
											2020-02-22 01:04:55 -03:00
										 |  |  | 	void clear_style(); | 
					
						
							| 
									
										
										
										
											2017-03-05 16:44:50 +01:00
										 |  |  | 	String get_var_value(const String &p_var) const; | 
					
						
							| 
									
										
										
										
											2015-04-18 14:38:54 -03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-02-07 02:52:05 +01:00
										 |  |  | 	void save_node(ObjectID p_id, const String &p_file); | 
					
						
							| 
									
										
										
										
											2015-08-02 12:29:37 -03:00
										 |  |  | 	void set_live_debugging(bool p_enable); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-03-05 16:44:50 +01:00
										 |  |  | 	void live_debug_create_node(const NodePath &p_parent, const String &p_type, const String &p_name); | 
					
						
							| 
									
										
										
										
											2022-11-16 00:13:39 +01:00
										 |  |  | 	void live_debug_instantiate_node(const NodePath &p_parent, const String &p_path, const String &p_name); | 
					
						
							| 
									
										
										
										
											2017-03-05 16:44:50 +01:00
										 |  |  | 	void live_debug_remove_node(const NodePath &p_at); | 
					
						
							|  |  |  | 	void live_debug_remove_and_keep_node(const NodePath &p_at, ObjectID p_keep_id); | 
					
						
							|  |  |  | 	void live_debug_restore_node(ObjectID p_id, const NodePath &p_at, int p_at_pos); | 
					
						
							|  |  |  | 	void live_debug_duplicate_node(const NodePath &p_at, const String &p_new_name); | 
					
						
							|  |  |  | 	void live_debug_reparent_node(const NodePath &p_at, const NodePath &p_new_place, const String &p_new_name, int p_at_pos); | 
					
						
							| 
									
										
										
										
											2015-08-02 12:29:37 -03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-02-24 06:21:15 +01:00
										 |  |  | 	EditorDebuggerNode::CameraOverride get_camera_override() const; | 
					
						
							|  |  |  | 	void set_camera_override(EditorDebuggerNode::CameraOverride p_override); | 
					
						
							| 
									
										
										
										
											2019-04-06 22:55:01 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-03-05 16:44:50 +01:00
										 |  |  | 	void set_breakpoint(const String &p_path, int p_line, bool p_enabled); | 
					
						
							| 
									
										
										
										
											2015-08-04 20:17:13 -03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-08-02 12:29:37 -03:00
										 |  |  | 	void update_live_edit_root(); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-06-01 20:22:02 -03:00
										 |  |  | 	void reload_scripts(); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-07-29 20:09:22 +02:00
										 |  |  | 	bool is_skip_breakpoints(); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-07-10 11:34:39 +01:00
										 |  |  | 	virtual Size2 get_minimum_size() const override; | 
					
						
							| 
									
										
										
										
											2020-05-18 20:25:49 +05:30
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-10-03 15:21:25 +02:00
										 |  |  | 	void add_debugger_tab(Control *p_control); | 
					
						
							|  |  |  | 	void remove_debugger_tab(Control *p_control); | 
					
						
							| 
									
										
										
										
											2020-05-18 20:25:49 +05:30
										 |  |  | 
 | 
					
						
							|  |  |  | 	void send_message(const String &p_message, const Array &p_args); | 
					
						
							| 
									
										
										
										
											2022-10-03 15:21:25 +02:00
										 |  |  | 	void toggle_profiler(const String &p_profiler, bool p_enable, const Array &p_data); | 
					
						
							| 
									
										
										
										
											2020-05-18 20:25:49 +05:30
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-01-27 10:36:51 +01:00
										 |  |  | 	ScriptEditorDebugger(); | 
					
						
							| 
									
										
										
										
											2015-04-18 14:38:54 -03:00
										 |  |  | 	~ScriptEditorDebugger(); | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #endif // SCRIPT_EDITOR_DEBUGGER_H
 |