OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium 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 "platform/v8_inspector/V8DebuggerAgentImpl.h" | 5 #include "platform/v8_inspector/V8DebuggerAgentImpl.h" |
6 | 6 |
7 #include "platform/inspector_protocol/String16.h" | 7 #include "platform/inspector_protocol/String16.h" |
8 #include "platform/inspector_protocol/Values.h" | 8 #include "platform/inspector_protocol/Values.h" |
9 #include "platform/v8_inspector/IgnoreExceptionsScope.h" | 9 #include "platform/v8_inspector/IgnoreExceptionsScope.h" |
10 #include "platform/v8_inspector/InjectedScript.h" | 10 #include "platform/v8_inspector/InjectedScript.h" |
(...skipping 460 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
471 int columnNumber; | 471 int columnNumber; |
472 | 472 |
473 if (!parseLocation(errorString, location, &scriptId, &lineNumber, &columnNum
ber)) | 473 if (!parseLocation(errorString, location, &scriptId, &lineNumber, &columnNum
ber)) |
474 return; | 474 return; |
475 | 475 |
476 ScriptBreakpoint breakpoint(lineNumber, columnNumber, ""); | 476 ScriptBreakpoint breakpoint(lineNumber, columnNumber, ""); |
477 m_continueToLocationBreakpointId = debugger().setBreakpoint(scriptId, breakp
oint, &lineNumber, &columnNumber, interstateLocationOpt.fromMaybe(false)); | 477 m_continueToLocationBreakpointId = debugger().setBreakpoint(scriptId, breakp
oint, &lineNumber, &columnNumber, interstateLocationOpt.fromMaybe(false)); |
478 resume(errorString); | 478 resume(errorString); |
479 } | 479 } |
480 | 480 |
481 void V8DebuggerAgentImpl::getStepInPositions(ErrorString* errorString, const Str
ing16& callFrameId, Maybe<Array<protocol::Debugger::Location>>* positions) | |
482 { | |
483 if (!isPaused() || m_currentCallStack.IsEmpty()) { | |
484 *errorString = "Attempt to access callframe when debugger is not on paus
e"; | |
485 return; | |
486 } | |
487 OwnPtr<RemoteCallFrameId> remoteId = RemoteCallFrameId::parse(callFrameId); | |
488 if (!remoteId) { | |
489 *errorString = "Invalid call frame id"; | |
490 return; | |
491 } | |
492 InjectedScript* injectedScript = m_injectedScriptManager->findInjectedScript
(remoteId.get()); | |
493 if (!injectedScript) { | |
494 *errorString = "Inspected frame has gone"; | |
495 return; | |
496 } | |
497 | |
498 v8::HandleScope scope(m_isolate); | |
499 v8::Local<v8::Object> callStack = m_currentCallStack.Get(m_isolate); | |
500 injectedScript->getStepInPositions(errorString, callStack, callFrameId, posi
tions); | |
501 } | |
502 | |
503 void V8DebuggerAgentImpl::getBacktrace(ErrorString* errorString, OwnPtr<Array<Ca
llFrame>>* callFrames, Maybe<StackTrace>* asyncStackTrace) | 481 void V8DebuggerAgentImpl::getBacktrace(ErrorString* errorString, OwnPtr<Array<Ca
llFrame>>* callFrames, Maybe<StackTrace>* asyncStackTrace) |
504 { | 482 { |
505 if (!assertPaused(errorString)) | 483 if (!assertPaused(errorString)) |
506 return; | 484 return; |
507 m_currentCallStack.Reset(m_isolate, debugger().currentCallFrames()); | 485 m_currentCallStack.Reset(m_isolate, debugger().currentCallFrames()); |
508 *callFrames = currentCallFrames(); | 486 *callFrames = currentCallFrames(); |
509 *asyncStackTrace = currentAsyncStackTrace(); | 487 *asyncStackTrace = currentAsyncStackTrace(); |
510 } | 488 } |
511 | 489 |
512 bool V8DebuggerAgentImpl::isCallStackEmptyOrBlackboxed() | 490 bool V8DebuggerAgentImpl::isCallStackEmptyOrBlackboxed() |
(...skipping 1038 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1551 m_scripts.clear(); | 1529 m_scripts.clear(); |
1552 m_blackboxedPositions.clear(); | 1530 m_blackboxedPositions.clear(); |
1553 m_breakpointIdToDebuggerBreakpointIds.clear(); | 1531 m_breakpointIdToDebuggerBreakpointIds.clear(); |
1554 resetAsyncCallTracker(); | 1532 resetAsyncCallTracker(); |
1555 m_promiseTracker->clear(); | 1533 m_promiseTracker->clear(); |
1556 if (m_frontend) | 1534 if (m_frontend) |
1557 m_frontend->globalObjectCleared(); | 1535 m_frontend->globalObjectCleared(); |
1558 } | 1536 } |
1559 | 1537 |
1560 } // namespace blink | 1538 } // namespace blink |
OLD | NEW |