| OLD | NEW |
| 1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 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/debug/debug.h" | 5 #include "src/debug/debug.h" |
| 6 | 6 |
| 7 #include "src/api.h" | 7 #include "src/api.h" |
| 8 #include "src/arguments.h" | 8 #include "src/arguments.h" |
| 9 #include "src/bootstrapper.h" | 9 #include "src/bootstrapper.h" |
| 10 #include "src/code-stubs.h" | 10 #include "src/code-stubs.h" |
| (...skipping 938 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 949 ClearOneShot(); | 949 ClearOneShot(); |
| 950 | 950 |
| 951 // Iterate through the JavaScript stack looking for handlers. | 951 // Iterate through the JavaScript stack looking for handlers. |
| 952 JavaScriptFrameIterator it(isolate_); | 952 JavaScriptFrameIterator it(isolate_); |
| 953 while (!it.done()) { | 953 while (!it.done()) { |
| 954 JavaScriptFrame* frame = it.frame(); | 954 JavaScriptFrame* frame = it.frame(); |
| 955 if (frame->LookupExceptionHandlerInTable(nullptr, nullptr) > 0) break; | 955 if (frame->LookupExceptionHandlerInTable(nullptr, nullptr) > 0) break; |
| 956 it.Advance(); | 956 it.Advance(); |
| 957 } | 957 } |
| 958 | 958 |
| 959 if (last_step_action() == StepNext) { |
| 960 while (!it.done()) { |
| 961 Address current_fp = it.frame()->UnpaddedFP(); |
| 962 if (current_fp >= thread_local_.target_fp_) break; |
| 963 it.Advance(); |
| 964 } |
| 965 } |
| 966 |
| 959 // Find the closest Javascript frame we can flood with one-shots. | 967 // Find the closest Javascript frame we can flood with one-shots. |
| 960 while (!it.done() && | 968 while (!it.done() && |
| 961 !it.frame()->function()->shared()->IsSubjectToDebugging()) { | 969 !it.frame()->function()->shared()->IsSubjectToDebugging()) { |
| 962 it.Advance(); | 970 it.Advance(); |
| 963 } | 971 } |
| 964 | 972 |
| 965 if (it.done()) return; // No suitable Javascript catch handler. | 973 if (it.done()) return; // No suitable Javascript catch handler. |
| 966 | 974 |
| 967 FloodWithOneShot(Handle<JSFunction>(it.frame()->function())); | 975 FloodWithOneShot(Handle<JSFunction>(it.frame()->function())); |
| 968 } | 976 } |
| (...skipping 1607 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2576 } | 2584 } |
| 2577 | 2585 |
| 2578 | 2586 |
| 2579 void LockingCommandMessageQueue::Clear() { | 2587 void LockingCommandMessageQueue::Clear() { |
| 2580 base::LockGuard<base::Mutex> lock_guard(&mutex_); | 2588 base::LockGuard<base::Mutex> lock_guard(&mutex_); |
| 2581 queue_.Clear(); | 2589 queue_.Clear(); |
| 2582 } | 2590 } |
| 2583 | 2591 |
| 2584 } // namespace internal | 2592 } // namespace internal |
| 2585 } // namespace v8 | 2593 } // namespace v8 |
| OLD | NEW |