New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Huge Debugger/EditorDebugger refactor. #36244
Huge Debugger/EditorDebugger refactor. #36244
Conversation
Yay! Hopefully after this lands, the remote tree issues I keep spotting will get fixed. How does the sanitizer work? If some value is mangled/nonsensical, does it get quietly dropped or is there an error message shown? Does it crash? The "crash without any errors" behavior is still the most annoying part of #29533 ... |
Dropped, and the editor should show an error
It should not, it should never, but it still might if I left some bug in it :-P |
2e60f85
to eec29ca
Compare
6bb0666
to 816d122
Compare
816d122
to cbc450c
Compare
Thanks a ton! |
"Debugger" should be "Session 1", but session 2 is the one with that label. |
@@ -2508,6 +1702,7 @@ ScriptEditorDebugger::ScriptEditorDebugger(EditorNode *p_editor) { | |||
visual_profiler->set_name(TTR("Visual Profiler")); | |||
tabs->add_child(visual_profiler); | |||
visual_profiler->connect_compat("enable_profiling", this, "_visual_profiler_activate"); | |||
visual_profiler->connect_compat("break_request", this, "_profiler_seeked"); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The rebase seemed to add this line back #36340 (See the diff)
This line causes an error since the signal break_request
does not exist.
Edit: Quickly made this PR #36502
The original change was in godotengine#36340
…-connect Re-Remove this signal call that was mistakenly added in #36244
* This behavior is not allowed, the error text suggests using call_deferred(). * Added a check in Node::remove_child to prevent future crashes of this type. * Fixed a performance regression introduced by godotengine#36244. Fixes godotengine#63718, probably other crashes too.
* This behavior is not allowed, the error text suggests using call_deferred(). * Added a check in Node::remove_child to prevent future crashes of this type. * Fixed a performance regression introduced by godotengine#36244. Fixes godotengine#63718, probably other crashes too.
* This behavior is not allowed, the error text suggests using call_deferred(). * Added a check in Node::remove_child to prevent future crashes of this type. * Fixed a performance regression introduced by godotengine#36244. Fixes godotengine#63718, probably other crashes too.
Changes both script debugger and editor debugger.
What this PR does:
Core
core/
. Most of the serialization/parsing is done via classes/structs.release
builds (with the exception of stack vars, but not for objects. We could change that too.).scene/debugger/scene_debugger.cpp
(let me know if you prefer it to just bescene/scene_debugger.cpp
). Most of the live-edit code fromSceneTree
has also been moved to that file.ProcessID
is sent to debugger if one is attached.Editor
ScriptEditorDebugger
(should beEditorDebuggerSession
),EditorDebuggerNode
(handles multiple sessions).EditorDebuggerTree
andEditorDebuggerInspector
to handle remote tree view, and stack var inspector (plus remote view inspector cache).editor/debugger/
(profilers should also be moved there too).SceneTree
directly and not by ScriptDebugger (it is also a singleton, but it could be exposed viaEditorNode::get_debugger_node()
instead). Do we want to keep or drop the various singletons in editor?EditorRun
now handles multiple process, debugger read each connectedProcessID
from network, but only allows focus steal and process kill to actually started child processes (for security).What this PR does not do (but should be done!):
[prefix]:[message]
(core
,scripts
,scene
,servers
, etc.)