OLD | NEW |
1 // Copyright 2016 the V8 project authors. All rights reserved. | 1 // Copyright 2016 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "src/inspector/v8-debugger.h" | 5 #include "src/inspector/v8-debugger.h" |
6 | 6 |
7 #include "src/inspector/debugger-script.h" | 7 #include "src/inspector/debugger-script.h" |
8 #include "src/inspector/inspected-context.h" | 8 #include "src/inspector/inspected-context.h" |
9 #include "src/inspector/protocol/Protocol.h" | 9 #include "src/inspector/protocol/Protocol.h" |
10 #include "src/inspector/script-breakpoint.h" | 10 #include "src/inspector/script-breakpoint.h" |
(...skipping 336 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
347 v8::debug::DebugBreak(m_isolate); | 347 v8::debug::DebugBreak(m_isolate); |
348 else | 348 else |
349 v8::debug::CancelDebugBreak(m_isolate); | 349 v8::debug::CancelDebugBreak(m_isolate); |
350 } | 350 } |
351 | 351 |
352 bool V8Debugger::canBreakProgram() { | 352 bool V8Debugger::canBreakProgram() { |
353 if (!m_breakpointsActivated) return false; | 353 if (!m_breakpointsActivated) return false; |
354 return !v8::debug::AllFramesOnStackAreBlackboxed(m_isolate); | 354 return !v8::debug::AllFramesOnStackAreBlackboxed(m_isolate); |
355 } | 355 } |
356 | 356 |
357 void V8Debugger::breakProgram() { | 357 bool V8Debugger::breakProgram(int targetContextGroupId) { |
358 // Don't allow nested breaks. | 358 // Don't allow nested breaks. |
359 if (isPaused()) return; | 359 if (isPaused()) return true; |
360 if (!canBreakProgram()) return; | 360 if (!canBreakProgram()) return true; |
| 361 DCHECK(targetContextGroupId); |
| 362 m_targetContextGroupId = targetContextGroupId; |
361 v8::debug::BreakRightNow(m_isolate); | 363 v8::debug::BreakRightNow(m_isolate); |
| 364 return m_inspector->enabledDebuggerAgentForGroup(targetContextGroupId); |
362 } | 365 } |
363 | 366 |
364 void V8Debugger::continueProgram(int targetContextGroupId) { | 367 void V8Debugger::continueProgram(int targetContextGroupId) { |
365 if (m_pausedContextGroupId != targetContextGroupId) return; | 368 if (m_pausedContextGroupId != targetContextGroupId) return; |
366 if (isPaused()) m_inspector->client()->quitMessageLoopOnPause(); | 369 if (isPaused()) m_inspector->client()->quitMessageLoopOnPause(); |
367 m_pausedContext.Clear(); | 370 m_pausedContext.Clear(); |
368 m_executionState.Clear(); | 371 m_executionState.Clear(); |
369 } | 372 } |
370 | 373 |
371 void V8Debugger::stepIntoStatement(int targetContextGroupId) { | 374 void V8Debugger::stepIntoStatement(int targetContextGroupId) { |
(...skipping 705 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1077 fprintf(stdout, "Async stacks count: %d\n", m_asyncStacksCount); | 1080 fprintf(stdout, "Async stacks count: %d\n", m_asyncStacksCount); |
1078 fprintf(stdout, "Scheduled async tasks: %zu\n", m_asyncTaskStacks.size()); | 1081 fprintf(stdout, "Scheduled async tasks: %zu\n", m_asyncTaskStacks.size()); |
1079 fprintf(stdout, "Created async tasks: %zu\n", | 1082 fprintf(stdout, "Created async tasks: %zu\n", |
1080 m_asyncTaskCreationStacks.size()); | 1083 m_asyncTaskCreationStacks.size()); |
1081 fprintf(stdout, "Async tasks with parent: %zu\n", m_parentTask.size()); | 1084 fprintf(stdout, "Async tasks with parent: %zu\n", m_parentTask.size()); |
1082 fprintf(stdout, "Recurring async tasks: %zu\n", m_recurringTasks.size()); | 1085 fprintf(stdout, "Recurring async tasks: %zu\n", m_recurringTasks.size()); |
1083 fprintf(stdout, "\n"); | 1086 fprintf(stdout, "\n"); |
1084 } | 1087 } |
1085 | 1088 |
1086 } // namespace v8_inspector | 1089 } // namespace v8_inspector |
OLD | NEW |