| 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 11 matching lines...) Expand all Loading... |
| 22 namespace { | 22 namespace { |
| 23 | 23 |
| 24 static const int kMaxAsyncTaskStacks = 128 * 1024; | 24 static const int kMaxAsyncTaskStacks = 128 * 1024; |
| 25 | 25 |
| 26 inline v8::Local<v8::Boolean> v8Boolean(bool value, v8::Isolate* isolate) { | 26 inline v8::Local<v8::Boolean> v8Boolean(bool value, v8::Isolate* isolate) { |
| 27 return value ? v8::True(isolate) : v8::False(isolate); | 27 return value ? v8::True(isolate) : v8::False(isolate); |
| 28 } | 28 } |
| 29 | 29 |
| 30 V8DebuggerAgentImpl* agentForScript(V8InspectorImpl* inspector, | 30 V8DebuggerAgentImpl* agentForScript(V8InspectorImpl* inspector, |
| 31 v8::Local<v8::debug::Script> script) { | 31 v8::Local<v8::debug::Script> script) { |
| 32 v8::Local<v8::Value> contextData; | 32 int contextId; |
| 33 if (!script->ContextData().ToLocal(&contextData) || !contextData->IsInt32()) { | 33 if (!script->ContextId().To(&contextId)) return nullptr; |
| 34 return nullptr; | |
| 35 } | |
| 36 int contextId = static_cast<int>(contextData.As<v8::Int32>()->Value()); | |
| 37 int contextGroupId = inspector->contextGroupId(contextId); | 34 int contextGroupId = inspector->contextGroupId(contextId); |
| 38 if (!contextGroupId) return nullptr; | 35 if (!contextGroupId) return nullptr; |
| 39 return inspector->enabledDebuggerAgentForGroup(contextGroupId); | 36 return inspector->enabledDebuggerAgentForGroup(contextGroupId); |
| 40 } | 37 } |
| 41 | 38 |
| 42 v8::MaybeLocal<v8::Array> collectionsEntries(v8::Local<v8::Context> context, | 39 v8::MaybeLocal<v8::Array> collectionsEntries(v8::Local<v8::Context> context, |
| 43 v8::Local<v8::Value> value) { | 40 v8::Local<v8::Value> value) { |
| 44 v8::Isolate* isolate = context->GetIsolate(); | 41 v8::Isolate* isolate = context->GetIsolate(); |
| 45 v8::Local<v8::Array> entries; | 42 v8::Local<v8::Array> entries; |
| 46 bool isKeyValue = false; | 43 bool isKeyValue = false; |
| (...skipping 165 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 212 | 209 |
| 213 void V8Debugger::getCompiledScripts( | 210 void V8Debugger::getCompiledScripts( |
| 214 int contextGroupId, | 211 int contextGroupId, |
| 215 std::vector<std::unique_ptr<V8DebuggerScript>>& result) { | 212 std::vector<std::unique_ptr<V8DebuggerScript>>& result) { |
| 216 v8::HandleScope scope(m_isolate); | 213 v8::HandleScope scope(m_isolate); |
| 217 v8::PersistentValueVector<v8::debug::Script> scripts(m_isolate); | 214 v8::PersistentValueVector<v8::debug::Script> scripts(m_isolate); |
| 218 v8::debug::GetLoadedScripts(m_isolate, scripts); | 215 v8::debug::GetLoadedScripts(m_isolate, scripts); |
| 219 for (size_t i = 0; i < scripts.Size(); ++i) { | 216 for (size_t i = 0; i < scripts.Size(); ++i) { |
| 220 v8::Local<v8::debug::Script> script = scripts.Get(i); | 217 v8::Local<v8::debug::Script> script = scripts.Get(i); |
| 221 if (!script->WasCompiled()) continue; | 218 if (!script->WasCompiled()) continue; |
| 222 v8::Local<v8::Value> contextData; | 219 if (script->IsEmbedded()) { |
| 223 if (!script->ContextData().ToLocal(&contextData) || !contextData->IsInt32()) | 220 result.push_back(V8DebuggerScript::Create(m_isolate, script, false)); |
| 224 continue; | 221 continue; |
| 225 int contextId = static_cast<int>(contextData.As<v8::Int32>()->Value()); | 222 } |
| 223 int contextId; |
| 224 if (!script->ContextId().To(&contextId)) continue; |
| 226 if (m_inspector->contextGroupId(contextId) != contextGroupId) continue; | 225 if (m_inspector->contextGroupId(contextId) != contextGroupId) continue; |
| 227 result.push_back(V8DebuggerScript::Create(m_isolate, script, false)); | 226 result.push_back(V8DebuggerScript::Create(m_isolate, script, false)); |
| 228 } | 227 } |
| 229 } | 228 } |
| 230 | 229 |
| 231 String16 V8Debugger::setBreakpoint(const ScriptBreakpoint& breakpoint, | 230 String16 V8Debugger::setBreakpoint(const ScriptBreakpoint& breakpoint, |
| 232 int* actualLineNumber, | 231 int* actualLineNumber, |
| 233 int* actualColumnNumber) { | 232 int* actualColumnNumber) { |
| 234 v8::HandleScope scope(m_isolate); | 233 v8::HandleScope scope(m_isolate); |
| 235 v8::Local<v8::Context> context = debuggerContext(); | 234 v8::Local<v8::Context> context = debuggerContext(); |
| (...skipping 841 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1077 fprintf(stdout, "Async stacks count: %d\n", m_asyncStacksCount); | 1076 fprintf(stdout, "Async stacks count: %d\n", m_asyncStacksCount); |
| 1078 fprintf(stdout, "Scheduled async tasks: %zu\n", m_asyncTaskStacks.size()); | 1077 fprintf(stdout, "Scheduled async tasks: %zu\n", m_asyncTaskStacks.size()); |
| 1079 fprintf(stdout, "Created async tasks: %zu\n", | 1078 fprintf(stdout, "Created async tasks: %zu\n", |
| 1080 m_asyncTaskCreationStacks.size()); | 1079 m_asyncTaskCreationStacks.size()); |
| 1081 fprintf(stdout, "Async tasks with parent: %zu\n", m_parentTask.size()); | 1080 fprintf(stdout, "Async tasks with parent: %zu\n", m_parentTask.size()); |
| 1082 fprintf(stdout, "Recurring async tasks: %zu\n", m_recurringTasks.size()); | 1081 fprintf(stdout, "Recurring async tasks: %zu\n", m_recurringTasks.size()); |
| 1083 fprintf(stdout, "\n"); | 1082 fprintf(stdout, "\n"); |
| 1084 } | 1083 } |
| 1085 | 1084 |
| 1086 } // namespace v8_inspector | 1085 } // namespace v8_inspector |
| OLD | NEW |