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 108 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
119 if (!script->WasCompiled()) continue; | 119 if (!script->WasCompiled()) continue; |
120 v8::Local<v8::Value> contextData; | 120 v8::Local<v8::Value> contextData; |
121 if (!script->ContextData().ToLocal(&contextData) || !contextData->IsInt32()) | 121 if (!script->ContextData().ToLocal(&contextData) || !contextData->IsInt32()) |
122 continue; | 122 continue; |
123 int contextId = static_cast<int>(contextData.As<v8::Int32>()->Value()); | 123 int contextId = static_cast<int>(contextData.As<v8::Int32>()->Value()); |
124 if (m_inspector->contextGroupId(contextId) != contextGroupId) continue; | 124 if (m_inspector->contextGroupId(contextId) != contextGroupId) continue; |
125 result.push_back(V8DebuggerScript::Create(m_isolate, script, false)); | 125 result.push_back(V8DebuggerScript::Create(m_isolate, script, false)); |
126 } | 126 } |
127 } | 127 } |
128 | 128 |
| 129 void V8Debugger::reportRequestedModules() { |
| 130 v8::debug::ReportRequestedModules(m_isolate); |
| 131 } |
| 132 |
129 String16 V8Debugger::setBreakpoint(const ScriptBreakpoint& breakpoint, | 133 String16 V8Debugger::setBreakpoint(const ScriptBreakpoint& breakpoint, |
130 int* actualLineNumber, | 134 int* actualLineNumber, |
131 int* actualColumnNumber) { | 135 int* actualColumnNumber) { |
132 v8::HandleScope scope(m_isolate); | 136 v8::HandleScope scope(m_isolate); |
133 v8::Local<v8::Context> context = debuggerContext(); | 137 v8::Local<v8::Context> context = debuggerContext(); |
134 v8::Context::Scope contextScope(context); | 138 v8::Context::Scope contextScope(context); |
135 | 139 |
136 v8::Local<v8::Object> info = v8::Object::New(m_isolate); | 140 v8::Local<v8::Object> info = v8::Object::New(m_isolate); |
137 bool success = false; | 141 bool success = false; |
138 success = info->Set(context, toV8StringInternalized(m_isolate, "sourceID"), | 142 success = info->Set(context, toV8StringInternalized(m_isolate, "sourceID"), |
(...skipping 420 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
559 | 563 |
560 bool V8Debugger::IsFunctionBlackboxed(v8::Local<v8::debug::Script> script, | 564 bool V8Debugger::IsFunctionBlackboxed(v8::Local<v8::debug::Script> script, |
561 const v8::debug::Location& start, | 565 const v8::debug::Location& start, |
562 const v8::debug::Location& end) { | 566 const v8::debug::Location& end) { |
563 V8DebuggerAgentImpl* agent = agentForScript(m_inspector, script); | 567 V8DebuggerAgentImpl* agent = agentForScript(m_inspector, script); |
564 if (!agent) return false; | 568 if (!agent) return false; |
565 return agent->isFunctionBlackboxed(String16::fromInteger(script->Id()), start, | 569 return agent->isFunctionBlackboxed(String16::fromInteger(script->Id()), start, |
566 end); | 570 end); |
567 } | 571 } |
568 | 572 |
| 573 void V8Debugger::ModuleRequested(v8::Local<v8::debug::Script> referer, |
| 574 v8::Local<v8::debug::Script> requested, |
| 575 v8::Local<v8::String> specifier) { |
| 576 V8DebuggerAgentImpl* refererAgent = agentForScript(m_inspector, referer); |
| 577 V8DebuggerAgentImpl* requestedAgent = agentForScript(m_inspector, requested); |
| 578 if (refererAgent != requestedAgent) return; |
| 579 refererAgent->moduleRequested(String16::fromInteger(referer->Id()), |
| 580 String16::fromInteger(requested->Id()), |
| 581 toProtocolString(specifier)); |
| 582 } |
| 583 |
569 void V8Debugger::PromiseEventOccurred(v8::debug::PromiseDebugActionType type, | 584 void V8Debugger::PromiseEventOccurred(v8::debug::PromiseDebugActionType type, |
570 int id, int parentId) { | 585 int id, int parentId) { |
571 if (!m_maxAsyncCallStackDepth) return; | 586 if (!m_maxAsyncCallStackDepth) return; |
572 // Async task events from Promises are given misaligned pointers to prevent | 587 // Async task events from Promises are given misaligned pointers to prevent |
573 // from overlapping with other Blink task identifiers. There is a single | 588 // from overlapping with other Blink task identifiers. There is a single |
574 // namespace of such ids, managed by src/js/promise.js. | 589 // namespace of such ids, managed by src/js/promise.js. |
575 void* ptr = reinterpret_cast<void*>(id * 2 + 1); | 590 void* ptr = reinterpret_cast<void*>(id * 2 + 1); |
576 switch (type) { | 591 switch (type) { |
577 case v8::debug::kDebugPromiseCreated: | 592 case v8::debug::kDebugPromiseCreated: |
578 asyncTaskCreated( | 593 asyncTaskCreated( |
(...skipping 416 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
995 | 1010 |
996 size_t stackSize = | 1011 size_t stackSize = |
997 fullStack ? V8StackTraceImpl::maxCallStackSizeToCapture : 1; | 1012 fullStack ? V8StackTraceImpl::maxCallStackSizeToCapture : 1; |
998 if (m_inspector->enabledRuntimeAgentForGroup(contextGroupId)) | 1013 if (m_inspector->enabledRuntimeAgentForGroup(contextGroupId)) |
999 stackSize = V8StackTraceImpl::maxCallStackSizeToCapture; | 1014 stackSize = V8StackTraceImpl::maxCallStackSizeToCapture; |
1000 | 1015 |
1001 return V8StackTraceImpl::capture(this, contextGroupId, stackSize); | 1016 return V8StackTraceImpl::capture(this, contextGroupId, stackSize); |
1002 } | 1017 } |
1003 | 1018 |
1004 } // namespace v8_inspector | 1019 } // namespace v8_inspector |
OLD | NEW |