summaryrefslogtreecommitdiff
path: root/editor/debugger/editor_debugger_node.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'editor/debugger/editor_debugger_node.cpp')
-rw-r--r--editor/debugger/editor_debugger_node.cpp15
1 files changed, 14 insertions, 1 deletions
diff --git a/editor/debugger/editor_debugger_node.cpp b/editor/debugger/editor_debugger_node.cpp
index 690ce98cb9..5d654ca756 100644
--- a/editor/debugger/editor_debugger_node.cpp
+++ b/editor/debugger/editor_debugger_node.cpp
@@ -466,7 +466,7 @@ void EditorDebuggerNode::_paused() {
});
}
-void EditorDebuggerNode::_breaked(bool p_breaked, bool p_can_debug, int p_debugger) {
+void EditorDebuggerNode::_breaked(bool p_breaked, bool p_can_debug, String p_message, bool p_has_stackdump, int p_debugger) {
if (get_current_debugger() != get_debugger(p_debugger)) {
if (!p_breaked) {
return;
@@ -489,6 +489,19 @@ void EditorDebuggerNode::set_breakpoint(const String &p_path, int p_line, bool p
});
}
+void EditorDebuggerNode::set_breakpoints(const String &p_path, Array p_lines) {
+ for (int i = 0; i < p_lines.size(); i++) {
+ set_breakpoint(p_path, p_lines[i], true);
+ }
+
+ for (Map<Breakpoint, bool>::Element *E = breakpoints.front(); E; E = E->next()) {
+ Breakpoint b = E->key();
+ if (b.source == p_path && !p_lines.has(b.line)) {
+ set_breakpoint(p_path, b.line, false);
+ }
+ }
+}
+
void EditorDebuggerNode::reload_scripts() {
_for_all(tabs, [&](ScriptEditorDebugger *dbg) {
dbg->reload_scripts();