| OLD | NEW |
| 1 // Copyright 2015 the V8 project authors. All rights reserved. | 1 // Copyright 2015 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-agent-impl.h" | 5 #include "src/inspector/v8-debugger-agent-impl.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 | 8 |
| 9 #include "src/debug/debug-interface.h" | 9 #include "src/debug/debug-interface.h" |
| 10 #include "src/inspector/injected-script.h" | 10 #include "src/inspector/injected-script.h" |
| (...skipping 611 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 622 *newCallFrames = std::move(callFrames); | 622 *newCallFrames = std::move(callFrames); |
| 623 *asyncStackTrace = currentAsyncStackTrace(); | 623 *asyncStackTrace = currentAsyncStackTrace(); |
| 624 return Response::OK(); | 624 return Response::OK(); |
| 625 } | 625 } |
| 626 | 626 |
| 627 Response V8DebuggerAgentImpl::restartFrame( | 627 Response V8DebuggerAgentImpl::restartFrame( |
| 628 const String16& callFrameId, | 628 const String16& callFrameId, |
| 629 std::unique_ptr<Array<CallFrame>>* newCallFrames, | 629 std::unique_ptr<Array<CallFrame>>* newCallFrames, |
| 630 Maybe<protocol::Runtime::StackTrace>* asyncStackTrace) { | 630 Maybe<protocol::Runtime::StackTrace>* asyncStackTrace) { |
| 631 if (!isPaused()) return Response::Error(kDebuggerNotPaused); | 631 if (!isPaused()) return Response::Error(kDebuggerNotPaused); |
| 632 InjectedScript::CallFrameScope scope(m_inspector, m_session->contextGroupId(), | 632 InjectedScript::CallFrameScope scope(m_session, callFrameId); |
| 633 callFrameId); | |
| 634 Response response = scope.initialize(); | 633 Response response = scope.initialize(); |
| 635 if (!response.isSuccess()) return response; | 634 if (!response.isSuccess()) return response; |
| 636 if (scope.frameOrdinal() >= m_pausedCallFrames.size()) | 635 if (scope.frameOrdinal() >= m_pausedCallFrames.size()) |
| 637 return Response::Error("Could not find call frame with given id"); | 636 return Response::Error("Could not find call frame with given id"); |
| 638 | 637 |
| 639 v8::Local<v8::Value> resultValue; | 638 v8::Local<v8::Value> resultValue; |
| 640 v8::Local<v8::Boolean> result; | 639 v8::Local<v8::Boolean> result; |
| 641 if (!m_pausedCallFrames[scope.frameOrdinal()]->restart().ToLocal( | 640 if (!m_pausedCallFrames[scope.frameOrdinal()]->restart().ToLocal( |
| 642 &resultValue) || | 641 &resultValue) || |
| 643 scope.tryCatch().HasCaught() || | 642 scope.tryCatch().HasCaught() || |
| (...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 770 m_state->setInteger(DebuggerAgentState::pauseOnExceptionsState, pauseState); | 769 m_state->setInteger(DebuggerAgentState::pauseOnExceptionsState, pauseState); |
| 771 } | 770 } |
| 772 | 771 |
| 773 Response V8DebuggerAgentImpl::evaluateOnCallFrame( | 772 Response V8DebuggerAgentImpl::evaluateOnCallFrame( |
| 774 const String16& callFrameId, const String16& expression, | 773 const String16& callFrameId, const String16& expression, |
| 775 Maybe<String16> objectGroup, Maybe<bool> includeCommandLineAPI, | 774 Maybe<String16> objectGroup, Maybe<bool> includeCommandLineAPI, |
| 776 Maybe<bool> silent, Maybe<bool> returnByValue, Maybe<bool> generatePreview, | 775 Maybe<bool> silent, Maybe<bool> returnByValue, Maybe<bool> generatePreview, |
| 777 Maybe<bool> throwOnSideEffect, std::unique_ptr<RemoteObject>* result, | 776 Maybe<bool> throwOnSideEffect, std::unique_ptr<RemoteObject>* result, |
| 778 Maybe<protocol::Runtime::ExceptionDetails>* exceptionDetails) { | 777 Maybe<protocol::Runtime::ExceptionDetails>* exceptionDetails) { |
| 779 if (!isPaused()) return Response::Error(kDebuggerNotPaused); | 778 if (!isPaused()) return Response::Error(kDebuggerNotPaused); |
| 780 InjectedScript::CallFrameScope scope(m_inspector, m_session->contextGroupId(), | 779 InjectedScript::CallFrameScope scope(m_session, callFrameId); |
| 781 callFrameId); | |
| 782 Response response = scope.initialize(); | 780 Response response = scope.initialize(); |
| 783 if (!response.isSuccess()) return response; | 781 if (!response.isSuccess()) return response; |
| 784 if (scope.frameOrdinal() >= m_pausedCallFrames.size()) | 782 if (scope.frameOrdinal() >= m_pausedCallFrames.size()) |
| 785 return Response::Error("Could not find call frame with given id"); | 783 return Response::Error("Could not find call frame with given id"); |
| 786 | 784 |
| 787 if (includeCommandLineAPI.fromMaybe(false)) scope.installCommandLineAPI(); | 785 if (includeCommandLineAPI.fromMaybe(false)) scope.installCommandLineAPI(); |
| 788 if (silent.fromMaybe(false)) scope.ignoreExceptionsAndMuteConsole(); | 786 if (silent.fromMaybe(false)) scope.ignoreExceptionsAndMuteConsole(); |
| 789 | 787 |
| 790 v8::MaybeLocal<v8::Value> maybeResultValue = | 788 v8::MaybeLocal<v8::Value> maybeResultValue = |
| 791 m_pausedCallFrames[scope.frameOrdinal()]->evaluate( | 789 m_pausedCallFrames[scope.frameOrdinal()]->evaluate( |
| 792 toV8String(m_isolate, expression), | 790 toV8String(m_isolate, expression), |
| 793 throwOnSideEffect.fromMaybe(false)); | 791 throwOnSideEffect.fromMaybe(false)); |
| 794 | 792 |
| 795 // Re-initialize after running client's code, as it could have destroyed | 793 // Re-initialize after running client's code, as it could have destroyed |
| 796 // context or session. | 794 // context or session. |
| 797 response = scope.initialize(); | 795 response = scope.initialize(); |
| 798 if (!response.isSuccess()) return response; | 796 if (!response.isSuccess()) return response; |
| 799 return scope.injectedScript()->wrapEvaluateResult( | 797 return scope.injectedScript()->wrapEvaluateResult( |
| 800 maybeResultValue, scope.tryCatch(), objectGroup.fromMaybe(""), | 798 maybeResultValue, scope.tryCatch(), objectGroup.fromMaybe(""), |
| 801 returnByValue.fromMaybe(false), generatePreview.fromMaybe(false), result, | 799 returnByValue.fromMaybe(false), generatePreview.fromMaybe(false), result, |
| 802 exceptionDetails); | 800 exceptionDetails); |
| 803 } | 801 } |
| 804 | 802 |
| 805 Response V8DebuggerAgentImpl::setVariableValue( | 803 Response V8DebuggerAgentImpl::setVariableValue( |
| 806 int scopeNumber, const String16& variableName, | 804 int scopeNumber, const String16& variableName, |
| 807 std::unique_ptr<protocol::Runtime::CallArgument> newValueArgument, | 805 std::unique_ptr<protocol::Runtime::CallArgument> newValueArgument, |
| 808 const String16& callFrameId) { | 806 const String16& callFrameId) { |
| 809 if (!enabled()) return Response::Error(kDebuggerNotEnabled); | 807 if (!enabled()) return Response::Error(kDebuggerNotEnabled); |
| 810 if (!isPaused()) return Response::Error(kDebuggerNotPaused); | 808 if (!isPaused()) return Response::Error(kDebuggerNotPaused); |
| 811 InjectedScript::CallFrameScope scope(m_inspector, m_session->contextGroupId(), | 809 InjectedScript::CallFrameScope scope(m_session, callFrameId); |
| 812 callFrameId); | |
| 813 Response response = scope.initialize(); | 810 Response response = scope.initialize(); |
| 814 if (!response.isSuccess()) return response; | 811 if (!response.isSuccess()) return response; |
| 815 v8::Local<v8::Value> newValue; | 812 v8::Local<v8::Value> newValue; |
| 816 response = scope.injectedScript()->resolveCallArgument(newValueArgument.get(), | 813 response = scope.injectedScript()->resolveCallArgument(newValueArgument.get(), |
| 817 &newValue); | 814 &newValue); |
| 818 if (!response.isSuccess()) return response; | 815 if (!response.isSuccess()) return response; |
| 819 | 816 |
| 820 if (scope.frameOrdinal() >= m_pausedCallFrames.size()) | 817 if (scope.frameOrdinal() >= m_pausedCallFrames.size()) |
| 821 return Response::Error("Could not find call frame with given id"); | 818 return Response::Error("Could not find call frame with given id"); |
| 822 v8::MaybeLocal<v8::Value> result = | 819 v8::MaybeLocal<v8::Value> result = |
| (...skipping 454 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1277 | 1274 |
| 1278 void V8DebuggerAgentImpl::reset() { | 1275 void V8DebuggerAgentImpl::reset() { |
| 1279 if (!enabled()) return; | 1276 if (!enabled()) return; |
| 1280 m_blackboxedPositions.clear(); | 1277 m_blackboxedPositions.clear(); |
| 1281 resetBlackboxedStateCache(); | 1278 resetBlackboxedStateCache(); |
| 1282 m_scripts.clear(); | 1279 m_scripts.clear(); |
| 1283 m_breakpointIdToDebuggerBreakpointIds.clear(); | 1280 m_breakpointIdToDebuggerBreakpointIds.clear(); |
| 1284 } | 1281 } |
| 1285 | 1282 |
| 1286 } // namespace v8_inspector | 1283 } // namespace v8_inspector |
| OLD | NEW |