Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(461)

Side by Side Diff: src/debug/debug.cc

Issue 1525993002: [debugger] remove frame argument for prepare step. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: rebase Created 5 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « src/debug/debug.h ('k') | src/debug/debug.js » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 475 matching lines...) Expand 10 before | Expand all | Expand 10 after
486 // Clear all current stepping setup. 486 // Clear all current stepping setup.
487 ClearStepping(); 487 ClearStepping();
488 488
489 if (thread_local_.queued_step_count_ > 0) { 489 if (thread_local_.queued_step_count_ > 0) {
490 // Perform queued steps 490 // Perform queued steps
491 int step_count = thread_local_.queued_step_count_; 491 int step_count = thread_local_.queued_step_count_;
492 492
493 // Clear queue 493 // Clear queue
494 thread_local_.queued_step_count_ = 0; 494 thread_local_.queued_step_count_ = 0;
495 495
496 PrepareStep(StepNext, step_count, StackFrame::NO_ID); 496 PrepareStep(StepNext, step_count);
497 } else { 497 } else {
498 // Notify the debug event listeners. 498 // Notify the debug event listeners.
499 OnDebugBreak(break_points_hit, false); 499 OnDebugBreak(break_points_hit, false);
500 } 500 }
501 } else if (thread_local_.last_step_action_ != StepNone) { 501 } else if (thread_local_.last_step_action_ != StepNone) {
502 // Hold on to last step action as it is cleared by the call to 502 // Hold on to last step action as it is cleared by the call to
503 // ClearStepping. 503 // ClearStepping.
504 StepAction step_action = thread_local_.last_step_action_; 504 StepAction step_action = thread_local_.last_step_action_;
505 int step_count = thread_local_.step_count_; 505 int step_count = thread_local_.step_count_;
506 506
(...skipping 17 matching lines...) Expand all
524 524
525 // Set up for StepOut to reach target frame. 525 // Set up for StepOut to reach target frame.
526 step_action = StepOut; 526 step_action = StepOut;
527 step_count = count; 527 step_count = count;
528 } 528 }
529 529
530 // Clear all current stepping setup. 530 // Clear all current stepping setup.
531 ClearStepping(); 531 ClearStepping();
532 532
533 // Set up for the remaining steps. 533 // Set up for the remaining steps.
534 PrepareStep(step_action, step_count, StackFrame::NO_ID); 534 PrepareStep(step_action, step_count);
535 } 535 }
536 } 536 }
537 537
538 538
539 // Check the break point objects for whether one or more are actually 539 // Check the break point objects for whether one or more are actually
540 // triggered. This function returns a JSArray with the break point objects 540 // triggered. This function returns a JSArray with the break point objects
541 // which is triggered. 541 // which is triggered.
542 Handle<Object> Debug::CheckBreakPoints(Handle<Object> break_point_objects) { 542 Handle<Object> Debug::CheckBreakPoints(Handle<Object> break_point_objects) {
543 Factory* factory = isolate_->factory(); 543 Factory* factory = isolate_->factory();
544 544
(...skipping 281 matching lines...) Expand 10 before | Expand all | Expand 10 after
826 !it.frame()->function()->shared()->IsSubjectToDebugging()) { 826 !it.frame()->function()->shared()->IsSubjectToDebugging()) {
827 it.Advance(); 827 it.Advance();
828 } 828 }
829 829
830 if (it.done()) return; // No suitable Javascript catch handler. 830 if (it.done()) return; // No suitable Javascript catch handler.
831 831
832 FloodWithOneShot(Handle<JSFunction>(it.frame()->function())); 832 FloodWithOneShot(Handle<JSFunction>(it.frame()->function()));
833 } 833 }
834 834
835 835
836 void Debug::PrepareStep(StepAction step_action, 836 void Debug::PrepareStep(StepAction step_action, int step_count) {
837 int step_count,
838 StackFrame::Id frame_id) {
839 HandleScope scope(isolate_); 837 HandleScope scope(isolate_);
840 838
841 DCHECK(in_debug_scope()); 839 DCHECK(in_debug_scope());
842 840
843 // Get the frame where the execution has stopped and skip the debug frame if 841 // Get the frame where the execution has stopped and skip the debug frame if
844 // any. The debug frame will only be present if execution was stopped due to 842 // any. The debug frame will only be present if execution was stopped due to
845 // hitting a break point. In other situations (e.g. unhandled exception) the 843 // hitting a break point. In other situations (e.g. unhandled exception) the
846 // debug frame is not present. 844 // debug frame is not present.
847 StackFrame::Id id = break_frame_id(); 845 StackFrame::Id frame_id = break_frame_id();
848 if (id == StackFrame::NO_ID) { 846 // If there is no JavaScript stack don't do anything.
849 // If there is no JavaScript stack don't do anything. 847 if (frame_id == StackFrame::NO_ID) return;
850 return; 848
851 } 849 JavaScriptFrameIterator frames_it(isolate_, frame_id);
852 if (frame_id != StackFrame::NO_ID) {
853 id = frame_id;
854 }
855 JavaScriptFrameIterator frames_it(isolate_, id);
856 JavaScriptFrame* frame = frames_it.frame(); 850 JavaScriptFrame* frame = frames_it.frame();
857 851
858 feature_tracker()->Track(DebugFeatureTracker::kStepping); 852 feature_tracker()->Track(DebugFeatureTracker::kStepping);
859 853
860 // Remember this step action and count. 854 // Remember this step action and count.
861 thread_local_.last_step_action_ = step_action; 855 thread_local_.last_step_action_ = step_action;
862 STATIC_ASSERT(StepFrame > StepIn); 856 STATIC_ASSERT(StepFrame > StepIn);
863 thread_local_.step_in_enabled_ = (step_action >= StepIn); 857 thread_local_.step_in_enabled_ = (step_action >= StepIn);
864 if (step_action == StepOut) { 858 if (step_action == StepOut) {
865 // For step out target frame will be found on the stack so there is no need 859 // For step out target frame will be found on the stack so there is no need
(...skipping 1647 matching lines...) Expand 10 before | Expand all | Expand 10 after
2513 } 2507 }
2514 2508
2515 2509
2516 void LockingCommandMessageQueue::Clear() { 2510 void LockingCommandMessageQueue::Clear() {
2517 base::LockGuard<base::Mutex> lock_guard(&mutex_); 2511 base::LockGuard<base::Mutex> lock_guard(&mutex_);
2518 queue_.Clear(); 2512 queue_.Clear();
2519 } 2513 }
2520 2514
2521 } // namespace internal 2515 } // namespace internal
2522 } // namespace v8 2516 } // namespace v8
OLDNEW
« no previous file with comments | « src/debug/debug.h ('k') | src/debug/debug.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698