OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2010 Apple Inc. All rights reserved. | 2 * Copyright (C) 2010 Apple Inc. All rights reserved. |
3 * Copyright (C) 2013 Google Inc. All rights reserved. | 3 * Copyright (C) 2013 Google Inc. All rights reserved. |
4 * | 4 * |
5 * Redistribution and use in source and binary forms, with or without | 5 * Redistribution and use in source and binary forms, with or without |
6 * modification, are permitted provided that the following conditions | 6 * modification, are permitted provided that the following conditions |
7 * are met: | 7 * are met: |
8 * | 8 * |
9 * 1. Redistributions of source code must retain the above copyright | 9 * 1. Redistributions of source code must retain the above copyright |
10 * notice, this list of conditions and the following disclaimer. | 10 * notice, this list of conditions and the following disclaimer. |
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
97 { | 97 { |
98 return scriptId + ':' + String::number(lineNumber) + ':' + String::number(co
lumnNumber) + breakpointIdSuffix(source); | 98 return scriptId + ':' + String::number(lineNumber) + ':' + String::number(co
lumnNumber) + breakpointIdSuffix(source); |
99 } | 99 } |
100 | 100 |
101 InspectorDebuggerAgent::InspectorDebuggerAgent(InjectedScriptManager* injectedSc
riptManager) | 101 InspectorDebuggerAgent::InspectorDebuggerAgent(InjectedScriptManager* injectedSc
riptManager) |
102 : InspectorBaseAgent<InspectorDebuggerAgent>("Debugger") | 102 : InspectorBaseAgent<InspectorDebuggerAgent>("Debugger") |
103 , m_injectedScriptManager(injectedScriptManager) | 103 , m_injectedScriptManager(injectedScriptManager) |
104 , m_frontend(0) | 104 , m_frontend(0) |
105 , m_pausedScriptState(nullptr) | 105 , m_pausedScriptState(nullptr) |
106 , m_javaScriptPauseScheduled(false) | 106 , m_javaScriptPauseScheduled(false) |
| 107 , m_debuggerStepScheduled(false) |
107 , m_listener(0) | 108 , m_listener(0) |
108 , m_skipStepInCount(numberOfStepsBeforeStepOut) | 109 , m_skipStepInCount(numberOfStepsBeforeStepOut) |
109 , m_skipAllPauses(false) | 110 , m_skipAllPauses(false) |
110 { | 111 { |
111 } | 112 } |
112 | 113 |
113 InspectorDebuggerAgent::~InspectorDebuggerAgent() | 114 InspectorDebuggerAgent::~InspectorDebuggerAgent() |
114 { | 115 { |
115 ASSERT(!m_instrumentingAgents->inspectorDebuggerAgent()); | 116 ASSERT(!m_instrumentingAgents->inspectorDebuggerAgent()); |
116 } | 117 } |
(...skipping 347 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
464 { | 465 { |
465 String scriptIdString = String::number(frame->sourceID()); | 466 String scriptIdString = String::number(frame->sourceID()); |
466 ScriptsMap::iterator it = m_scripts.find(scriptIdString); | 467 ScriptsMap::iterator it = m_scripts.find(scriptIdString); |
467 if (it == m_scripts.end()) | 468 if (it == m_scripts.end()) |
468 return String(); | 469 return String(); |
469 return it->value.url; | 470 return it->value.url; |
470 } | 471 } |
471 | 472 |
472 ScriptDebugListener::SkipPauseRequest InspectorDebuggerAgent::shouldSkipExceptio
nPause() | 473 ScriptDebugListener::SkipPauseRequest InspectorDebuggerAgent::shouldSkipExceptio
nPause() |
473 { | 474 { |
474 if (m_skipAllPauses) | 475 // FIXME: Fast return: if (!m_cachedSkipStackRegExp && !has_any_anti_breakpo
int) return ScriptDebugListener::NoSkip; |
475 return ScriptDebugListener::Continue; | |
476 | 476 |
477 RefPtr<JavaScriptCallFrame> topFrame = scriptDebugServer().topCallFrameNoSco
pes(); | 477 RefPtr<JavaScriptCallFrame> topFrame = scriptDebugServer().topCallFrameNoSco
pes(); |
478 if (!topFrame) | 478 if (!topFrame) |
479 return ScriptDebugListener::NoSkip; | 479 return ScriptDebugListener::NoSkip; |
480 | 480 |
481 String topFrameScriptUrl = scriptURL(topFrame.get()); | 481 String topFrameScriptUrl = scriptURL(topFrame.get()); |
482 if (m_cachedSkipStackRegExp && !topFrameScriptUrl.isEmpty() && m_cachedSkipS
tackRegExp->match(topFrameScriptUrl) != -1) | 482 if (m_cachedSkipStackRegExp && !topFrameScriptUrl.isEmpty() && m_cachedSkipS
tackRegExp->match(topFrameScriptUrl) != -1) |
483 return ScriptDebugListener::Continue; | 483 return ScriptDebugListener::Continue; |
484 | 484 |
485 // Match against breakpoints. | 485 // Match against breakpoints. |
(...skipping 29 matching lines...) Expand all Loading... |
515 breakpointObject->getString(DebuggerAgentState::url, &url); | 515 breakpointObject->getString(DebuggerAgentState::url, &url); |
516 if (!matches(topFrameScriptUrl, url, isRegex)) | 516 if (!matches(topFrameScriptUrl, url, isRegex)) |
517 continue; | 517 continue; |
518 | 518 |
519 return ScriptDebugListener::Continue; | 519 return ScriptDebugListener::Continue; |
520 } | 520 } |
521 | 521 |
522 return ScriptDebugListener::NoSkip; | 522 return ScriptDebugListener::NoSkip; |
523 } | 523 } |
524 | 524 |
525 ScriptDebugListener::SkipPauseRequest InspectorDebuggerAgent::shouldSkipBreakpoi
ntPause() | |
526 { | |
527 if (m_skipAllPauses) | |
528 return ScriptDebugListener::Continue; | |
529 return ScriptDebugListener::NoSkip; | |
530 } | |
531 | |
532 ScriptDebugListener::SkipPauseRequest InspectorDebuggerAgent::shouldSkipStepPaus
e() | 525 ScriptDebugListener::SkipPauseRequest InspectorDebuggerAgent::shouldSkipStepPaus
e() |
533 { | 526 { |
534 if (m_skipAllPauses) | |
535 return ScriptDebugListener::Continue; | |
536 if (!m_cachedSkipStackRegExp) | 527 if (!m_cachedSkipStackRegExp) |
537 return ScriptDebugListener::NoSkip; | 528 return ScriptDebugListener::NoSkip; |
538 | 529 |
539 RefPtr<JavaScriptCallFrame> topFrame = scriptDebugServer().topCallFrameNoSco
pes(); | 530 RefPtr<JavaScriptCallFrame> topFrame = scriptDebugServer().topCallFrameNoSco
pes(); |
540 String scriptUrl = scriptURL(topFrame.get()); | 531 String scriptUrl = scriptURL(topFrame.get()); |
541 if (!scriptUrl.isEmpty() && m_cachedSkipStackRegExp->match(scriptUrl) != -1)
{ | 532 if (!scriptUrl.isEmpty() && m_cachedSkipStackRegExp->match(scriptUrl) != -1)
{ |
542 if (m_skipStepInCount > 0) { | 533 if (m_skipStepInCount > 0) { |
543 --m_skipStepInCount; | 534 --m_skipStepInCount; |
544 return ScriptDebugListener::StepInto; | 535 return ScriptDebugListener::StepInto; |
545 } | 536 } |
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
635 } | 626 } |
636 injectedScript.getFunctionDetails(errorString, functionId, &details); | 627 injectedScript.getFunctionDetails(errorString, functionId, &details); |
637 } | 628 } |
638 | 629 |
639 void InspectorDebuggerAgent::schedulePauseOnNextStatement(InspectorFrontend::Deb
ugger::Reason::Enum breakReason, PassRefPtr<JSONObject> data) | 630 void InspectorDebuggerAgent::schedulePauseOnNextStatement(InspectorFrontend::Deb
ugger::Reason::Enum breakReason, PassRefPtr<JSONObject> data) |
640 { | 631 { |
641 if (m_javaScriptPauseScheduled) | 632 if (m_javaScriptPauseScheduled) |
642 return; | 633 return; |
643 m_breakReason = breakReason; | 634 m_breakReason = breakReason; |
644 m_breakAuxData = data; | 635 m_breakAuxData = data; |
| 636 m_debuggerStepScheduled = true; |
645 scriptDebugServer().setPauseOnNextStatement(true); | 637 scriptDebugServer().setPauseOnNextStatement(true); |
646 } | 638 } |
647 | 639 |
648 void InspectorDebuggerAgent::cancelPauseOnNextStatement() | 640 void InspectorDebuggerAgent::cancelPauseOnNextStatement() |
649 { | 641 { |
650 if (m_javaScriptPauseScheduled) | 642 if (m_javaScriptPauseScheduled) |
651 return; | 643 return; |
652 clearBreakDetails(); | 644 clearBreakDetails(); |
| 645 m_debuggerStepScheduled = false; |
653 scriptDebugServer().setPauseOnNextStatement(false); | 646 scriptDebugServer().setPauseOnNextStatement(false); |
654 } | 647 } |
655 | 648 |
656 void InspectorDebuggerAgent::didInstallTimer(ExecutionContext* context, int time
rId, int timeout, bool singleShot) | 649 void InspectorDebuggerAgent::didInstallTimer(ExecutionContext* context, int time
rId, int timeout, bool singleShot) |
657 { | 650 { |
658 if (m_asyncCallStackTracker.isEnabled()) | 651 if (m_asyncCallStackTracker.isEnabled()) |
659 m_asyncCallStackTracker.didInstallTimer(context, timerId, singleShot, sc
riptDebugServer().currentCallFramesForAsyncStack()); | 652 m_asyncCallStackTracker.didInstallTimer(context, timerId, singleShot, sc
riptDebugServer().currentCallFramesForAsyncStack()); |
660 } | 653 } |
661 | 654 |
662 void InspectorDebuggerAgent::didRemoveTimer(ExecutionContext* context, int timer
Id) | 655 void InspectorDebuggerAgent::didRemoveTimer(ExecutionContext* context, int timer
Id) |
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
745 { | 738 { |
746 if (m_asyncCallStackTracker.isEnabled()) | 739 if (m_asyncCallStackTracker.isEnabled()) |
747 m_asyncCallStackTracker.didFireAsyncCall(); | 740 m_asyncCallStackTracker.didFireAsyncCall(); |
748 } | 741 } |
749 | 742 |
750 void InspectorDebuggerAgent::pause(ErrorString*) | 743 void InspectorDebuggerAgent::pause(ErrorString*) |
751 { | 744 { |
752 if (m_javaScriptPauseScheduled) | 745 if (m_javaScriptPauseScheduled) |
753 return; | 746 return; |
754 clearBreakDetails(); | 747 clearBreakDetails(); |
| 748 m_javaScriptPauseScheduled = true; |
| 749 m_debuggerStepScheduled = false; |
755 scriptDebugServer().setPauseOnNextStatement(true); | 750 scriptDebugServer().setPauseOnNextStatement(true); |
756 m_javaScriptPauseScheduled = true; | |
757 } | 751 } |
758 | 752 |
759 void InspectorDebuggerAgent::resume(ErrorString* errorString) | 753 void InspectorDebuggerAgent::resume(ErrorString* errorString) |
760 { | 754 { |
761 if (!assertPaused(errorString)) | 755 if (!assertPaused(errorString)) |
762 return; | 756 return; |
| 757 m_debuggerStepScheduled = false; |
763 m_injectedScriptManager->releaseObjectGroup(InspectorDebuggerAgent::backtrac
eObjectGroup); | 758 m_injectedScriptManager->releaseObjectGroup(InspectorDebuggerAgent::backtrac
eObjectGroup); |
764 scriptDebugServer().continueProgram(); | 759 scriptDebugServer().continueProgram(); |
765 } | 760 } |
766 | 761 |
767 ScriptValue InspectorDebuggerAgent::resolveCallFrame(ErrorString* errorString, c
onst String* callFrameId) | 762 ScriptValue InspectorDebuggerAgent::resolveCallFrame(ErrorString* errorString, c
onst String* callFrameId) |
768 { | 763 { |
769 if (!callFrameId) | 764 if (!callFrameId) |
770 return ScriptValue(); | 765 return ScriptValue(); |
771 if (!isPaused() || m_currentCallStack.isEmpty()) { | 766 if (!isPaused() || m_currentCallStack.isEmpty()) { |
772 *errorString = "Attempt to access callframe when debugger is not on paus
e"; | 767 *errorString = "Attempt to access callframe when debugger is not on paus
e"; |
773 return ScriptValue(); | 768 return ScriptValue(); |
774 } | 769 } |
775 InjectedScript injectedScript = m_injectedScriptManager->injectedScriptForOb
jectId(*callFrameId); | 770 InjectedScript injectedScript = m_injectedScriptManager->injectedScriptForOb
jectId(*callFrameId); |
776 if (injectedScript.isEmpty()) { | 771 if (injectedScript.isEmpty()) { |
777 *errorString = "Inspected frame has gone"; | 772 *errorString = "Inspected frame has gone"; |
778 return ScriptValue(); | 773 return ScriptValue(); |
779 } | 774 } |
780 return injectedScript.findCallFrameById(errorString, m_currentCallStack, *ca
llFrameId); | 775 return injectedScript.findCallFrameById(errorString, m_currentCallStack, *ca
llFrameId); |
781 } | 776 } |
782 | 777 |
783 void InspectorDebuggerAgent::stepOver(ErrorString* errorString, const String* ca
llFrameId) | 778 void InspectorDebuggerAgent::stepOver(ErrorString* errorString, const String* ca
llFrameId) |
784 { | 779 { |
785 if (!assertPaused(errorString)) | 780 if (!assertPaused(errorString)) |
786 return; | 781 return; |
787 ScriptValue frame = resolveCallFrame(errorString, callFrameId); | 782 ScriptValue frame = resolveCallFrame(errorString, callFrameId); |
788 if (!errorString->isEmpty()) | 783 if (!errorString->isEmpty()) |
789 return; | 784 return; |
| 785 m_debuggerStepScheduled = true; |
790 m_injectedScriptManager->releaseObjectGroup(InspectorDebuggerAgent::backtrac
eObjectGroup); | 786 m_injectedScriptManager->releaseObjectGroup(InspectorDebuggerAgent::backtrac
eObjectGroup); |
791 scriptDebugServer().stepOverStatement(frame); | 787 scriptDebugServer().stepOverStatement(frame); |
792 } | 788 } |
793 | 789 |
794 void InspectorDebuggerAgent::stepInto(ErrorString* errorString) | 790 void InspectorDebuggerAgent::stepInto(ErrorString* errorString) |
795 { | 791 { |
796 if (!assertPaused(errorString)) | 792 if (!assertPaused(errorString)) |
797 return; | 793 return; |
| 794 m_debuggerStepScheduled = true; |
798 m_injectedScriptManager->releaseObjectGroup(InspectorDebuggerAgent::backtrac
eObjectGroup); | 795 m_injectedScriptManager->releaseObjectGroup(InspectorDebuggerAgent::backtrac
eObjectGroup); |
799 scriptDebugServer().stepIntoStatement(); | 796 scriptDebugServer().stepIntoStatement(); |
800 if (m_listener) | 797 if (m_listener) |
801 m_listener->stepInto(); | 798 m_listener->stepInto(); |
802 } | 799 } |
803 | 800 |
804 void InspectorDebuggerAgent::stepOut(ErrorString* errorString, const String* cal
lFrameId) | 801 void InspectorDebuggerAgent::stepOut(ErrorString* errorString, const String* cal
lFrameId) |
805 { | 802 { |
806 if (!assertPaused(errorString)) | 803 if (!assertPaused(errorString)) |
807 return; | 804 return; |
808 ScriptValue frame = resolveCallFrame(errorString, callFrameId); | 805 ScriptValue frame = resolveCallFrame(errorString, callFrameId); |
809 if (!errorString->isEmpty()) | 806 if (!errorString->isEmpty()) |
810 return; | 807 return; |
| 808 m_debuggerStepScheduled = true; |
811 m_injectedScriptManager->releaseObjectGroup(InspectorDebuggerAgent::backtrac
eObjectGroup); | 809 m_injectedScriptManager->releaseObjectGroup(InspectorDebuggerAgent::backtrac
eObjectGroup); |
812 scriptDebugServer().stepOutOfFunction(frame); | 810 scriptDebugServer().stepOutOfFunction(frame); |
813 } | 811 } |
814 | 812 |
815 void InspectorDebuggerAgent::setPauseOnExceptions(ErrorString* errorString, cons
t String& stringPauseState) | 813 void InspectorDebuggerAgent::setPauseOnExceptions(ErrorString* errorString, cons
t String& stringPauseState) |
816 { | 814 { |
817 ScriptDebugServer::PauseOnExceptionsState pauseState; | 815 ScriptDebugServer::PauseOnExceptionsState pauseState; |
818 if (stringPauseState == "none") | 816 if (stringPauseState == "none") |
819 pauseState = ScriptDebugServer::DontPauseOnExceptions; | 817 pauseState = ScriptDebugServer::DontPauseOnExceptions; |
820 else if (stringPauseState == "all") | 818 else if (stringPauseState == "all") |
(...skipping 276 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1097 } | 1095 } |
1098 } | 1096 } |
1099 | 1097 |
1100 void InspectorDebuggerAgent::failedToParseSource(const String& url, const String
& data, int firstLine, int errorLine, const String& errorMessage) | 1098 void InspectorDebuggerAgent::failedToParseSource(const String& url, const String
& data, int firstLine, int errorLine, const String& errorMessage) |
1101 { | 1099 { |
1102 m_frontend->scriptFailedToParse(url, data, firstLine, errorLine, errorMessag
e); | 1100 m_frontend->scriptFailedToParse(url, data, firstLine, errorLine, errorMessag
e); |
1103 } | 1101 } |
1104 | 1102 |
1105 ScriptDebugListener::SkipPauseRequest InspectorDebuggerAgent::didPause(ScriptSta
te* scriptState, const ScriptValue& callFrames, const ScriptValue& exception, co
nst Vector<String>& hitBreakpoints) | 1103 ScriptDebugListener::SkipPauseRequest InspectorDebuggerAgent::didPause(ScriptSta
te* scriptState, const ScriptValue& callFrames, const ScriptValue& exception, co
nst Vector<String>& hitBreakpoints) |
1106 { | 1104 { |
1107 ScriptDebugListener::SkipPauseRequest result = ScriptDebugListener::NoSkip; | 1105 ScriptDebugListener::SkipPauseRequest result; |
1108 if (!exception.isEmpty()) | 1106 if (m_javaScriptPauseScheduled) |
| 1107 result = ScriptDebugListener::NoSkip; // Don't skip explicit pause reque
sts from front-end. |
| 1108 else if (m_skipAllPauses) |
| 1109 result = ScriptDebugListener::Continue; |
| 1110 else if (!hitBreakpoints.isEmpty()) |
| 1111 result = ScriptDebugListener::NoSkip; // Don't skip explicit breakpoints
even if set in frameworks. |
| 1112 else if (!exception.isEmpty()) |
1109 result = shouldSkipExceptionPause(); | 1113 result = shouldSkipExceptionPause(); |
1110 else if (!hitBreakpoints.isEmpty()) | 1114 else if (m_debuggerStepScheduled) |
1111 result = shouldSkipBreakpointPause(); | 1115 result = shouldSkipStepPause(); |
1112 else | 1116 else |
1113 result = shouldSkipStepPause(); | 1117 result = ScriptDebugListener::NoSkip; |
1114 | 1118 |
1115 if (result != ScriptDebugListener::NoSkip) | 1119 if (result != ScriptDebugListener::NoSkip) |
1116 return result; | 1120 return result; |
1117 | 1121 |
1118 ASSERT(scriptState && !m_pausedScriptState); | 1122 ASSERT(scriptState && !m_pausedScriptState); |
1119 m_pausedScriptState = scriptState; | 1123 m_pausedScriptState = scriptState; |
1120 m_currentCallStack = callFrames; | 1124 m_currentCallStack = callFrames; |
1121 | 1125 |
1122 m_skipStepInCount = numberOfStepsBeforeStepOut; | 1126 m_skipStepInCount = numberOfStepsBeforeStepOut; |
1123 | 1127 |
(...skipping 15 matching lines...) Expand all Loading... |
1139 hitBreakpointIds->addItem(localId); | 1143 hitBreakpointIds->addItem(localId); |
1140 | 1144 |
1141 BreakpointSource source = breakpointIterator->value.second; | 1145 BreakpointSource source = breakpointIterator->value.second; |
1142 if (m_breakReason == InspectorFrontend::Debugger::Reason::Other && s
ource == DebugCommandBreakpointSource) | 1146 if (m_breakReason == InspectorFrontend::Debugger::Reason::Other && s
ource == DebugCommandBreakpointSource) |
1143 m_breakReason = InspectorFrontend::Debugger::Reason::DebugComman
d; | 1147 m_breakReason = InspectorFrontend::Debugger::Reason::DebugComman
d; |
1144 } | 1148 } |
1145 } | 1149 } |
1146 | 1150 |
1147 m_frontend->paused(currentCallFrames(), m_breakReason, m_breakAuxData, hitBr
eakpointIds, currentAsyncStackTrace()); | 1151 m_frontend->paused(currentCallFrames(), m_breakReason, m_breakAuxData, hitBr
eakpointIds, currentAsyncStackTrace()); |
1148 m_javaScriptPauseScheduled = false; | 1152 m_javaScriptPauseScheduled = false; |
| 1153 m_debuggerStepScheduled = false; |
1149 | 1154 |
1150 if (!m_continueToLocationBreakpointId.isEmpty()) { | 1155 if (!m_continueToLocationBreakpointId.isEmpty()) { |
1151 scriptDebugServer().removeBreakpoint(m_continueToLocationBreakpointId); | 1156 scriptDebugServer().removeBreakpoint(m_continueToLocationBreakpointId); |
1152 m_continueToLocationBreakpointId = ""; | 1157 m_continueToLocationBreakpointId = ""; |
1153 } | 1158 } |
1154 if (m_listener) | 1159 if (m_listener) |
1155 m_listener->didPause(); | 1160 m_listener->didPause(); |
1156 return result; | 1161 return result; |
1157 } | 1162 } |
1158 | 1163 |
1159 void InspectorDebuggerAgent::didContinue() | 1164 void InspectorDebuggerAgent::didContinue() |
1160 { | 1165 { |
1161 m_pausedScriptState = nullptr; | 1166 m_pausedScriptState = nullptr; |
1162 m_currentCallStack = ScriptValue(); | 1167 m_currentCallStack = ScriptValue(); |
1163 clearBreakDetails(); | 1168 clearBreakDetails(); |
1164 m_frontend->resumed(); | 1169 m_frontend->resumed(); |
1165 } | 1170 } |
1166 | 1171 |
1167 bool InspectorDebuggerAgent::canBreakProgram() | 1172 bool InspectorDebuggerAgent::canBreakProgram() |
1168 { | 1173 { |
1169 return scriptDebugServer().canBreakProgram(); | 1174 return scriptDebugServer().canBreakProgram(); |
1170 } | 1175 } |
1171 | 1176 |
1172 void InspectorDebuggerAgent::breakProgram(InspectorFrontend::Debugger::Reason::E
num breakReason, PassRefPtr<JSONObject> data) | 1177 void InspectorDebuggerAgent::breakProgram(InspectorFrontend::Debugger::Reason::E
num breakReason, PassRefPtr<JSONObject> data) |
1173 { | 1178 { |
1174 if (m_skipAllPauses) | 1179 if (m_skipAllPauses) |
1175 return; | 1180 return; |
1176 m_breakReason = breakReason; | 1181 m_breakReason = breakReason; |
1177 m_breakAuxData = data; | 1182 m_breakAuxData = data; |
| 1183 m_debuggerStepScheduled = false; |
1178 scriptDebugServer().breakProgram(); | 1184 scriptDebugServer().breakProgram(); |
1179 } | 1185 } |
1180 | 1186 |
1181 void InspectorDebuggerAgent::clear() | 1187 void InspectorDebuggerAgent::clear() |
1182 { | 1188 { |
1183 m_pausedScriptState = nullptr; | 1189 m_pausedScriptState = nullptr; |
1184 m_currentCallStack = ScriptValue(); | 1190 m_currentCallStack = ScriptValue(); |
1185 m_scripts.clear(); | 1191 m_scripts.clear(); |
1186 m_breakpointIdToDebugServerBreakpointIds.clear(); | 1192 m_breakpointIdToDebugServerBreakpointIds.clear(); |
1187 m_asyncCallStackTracker.clear(); | 1193 m_asyncCallStackTracker.clear(); |
1188 m_continueToLocationBreakpointId = String(); | 1194 m_continueToLocationBreakpointId = String(); |
1189 clearBreakDetails(); | 1195 clearBreakDetails(); |
1190 m_javaScriptPauseScheduled = false; | 1196 m_javaScriptPauseScheduled = false; |
| 1197 m_debuggerStepScheduled = false; |
1191 ErrorString error; | 1198 ErrorString error; |
1192 setOverlayMessage(&error, 0); | 1199 setOverlayMessage(&error, 0); |
1193 } | 1200 } |
1194 | 1201 |
1195 bool InspectorDebuggerAgent::assertPaused(ErrorString* errorString) | 1202 bool InspectorDebuggerAgent::assertPaused(ErrorString* errorString) |
1196 { | 1203 { |
1197 if (!m_pausedScriptState) { | 1204 if (!m_pausedScriptState) { |
1198 *errorString = "Can only perform operation while paused."; | 1205 *errorString = "Can only perform operation while paused."; |
1199 return false; | 1206 return false; |
1200 } | 1207 } |
(...skipping 22 matching lines...) Expand all Loading... |
1223 { | 1230 { |
1224 m_scripts.clear(); | 1231 m_scripts.clear(); |
1225 m_breakpointIdToDebugServerBreakpointIds.clear(); | 1232 m_breakpointIdToDebugServerBreakpointIds.clear(); |
1226 m_asyncCallStackTracker.clear(); | 1233 m_asyncCallStackTracker.clear(); |
1227 if (m_frontend) | 1234 if (m_frontend) |
1228 m_frontend->globalObjectCleared(); | 1235 m_frontend->globalObjectCleared(); |
1229 } | 1236 } |
1230 | 1237 |
1231 } // namespace WebCore | 1238 } // namespace WebCore |
1232 | 1239 |
OLD | NEW |