[debugger] remove frame argument for prepare step.
The third argument optionally specifies the frame from which to step. This feature is not used and not well tested. R=jkummerow@chromium.org BUG=chromium:569835 LOG=N Review URL: https://codereview.chromium.org/1525993002 Cr-Commit-Position: refs/heads/master@{#32865}
This commit is contained in:
parent
1362f935ad
commit
bead244884
@ -493,7 +493,7 @@ void Debug::Break(Arguments args, JavaScriptFrame* frame) {
|
||||
// Clear queue
|
||||
thread_local_.queued_step_count_ = 0;
|
||||
|
||||
PrepareStep(StepNext, step_count, StackFrame::NO_ID);
|
||||
PrepareStep(StepNext, step_count);
|
||||
} else {
|
||||
// Notify the debug event listeners.
|
||||
OnDebugBreak(break_points_hit, false);
|
||||
@ -531,7 +531,7 @@ void Debug::Break(Arguments args, JavaScriptFrame* frame) {
|
||||
ClearStepping();
|
||||
|
||||
// Set up for the remaining steps.
|
||||
PrepareStep(step_action, step_count, StackFrame::NO_ID);
|
||||
PrepareStep(step_action, step_count);
|
||||
}
|
||||
}
|
||||
|
||||
@ -833,9 +833,7 @@ void Debug::PrepareStepOnThrow() {
|
||||
}
|
||||
|
||||
|
||||
void Debug::PrepareStep(StepAction step_action,
|
||||
int step_count,
|
||||
StackFrame::Id frame_id) {
|
||||
void Debug::PrepareStep(StepAction step_action, int step_count) {
|
||||
HandleScope scope(isolate_);
|
||||
|
||||
DCHECK(in_debug_scope());
|
||||
@ -844,15 +842,11 @@ void Debug::PrepareStep(StepAction step_action,
|
||||
// any. The debug frame will only be present if execution was stopped due to
|
||||
// hitting a break point. In other situations (e.g. unhandled exception) the
|
||||
// debug frame is not present.
|
||||
StackFrame::Id id = break_frame_id();
|
||||
if (id == StackFrame::NO_ID) {
|
||||
// If there is no JavaScript stack don't do anything.
|
||||
return;
|
||||
}
|
||||
if (frame_id != StackFrame::NO_ID) {
|
||||
id = frame_id;
|
||||
}
|
||||
JavaScriptFrameIterator frames_it(isolate_, id);
|
||||
StackFrame::Id frame_id = break_frame_id();
|
||||
// If there is no JavaScript stack don't do anything.
|
||||
if (frame_id == StackFrame::NO_ID) return;
|
||||
|
||||
JavaScriptFrameIterator frames_it(isolate_, frame_id);
|
||||
JavaScriptFrame* frame = frames_it.frame();
|
||||
|
||||
feature_tracker()->Track(DebugFeatureTracker::kStepping);
|
||||
|
@ -408,9 +408,7 @@ class Debug {
|
||||
bool IsBreakOnException(ExceptionBreakType type);
|
||||
|
||||
// Stepping handling.
|
||||
void PrepareStep(StepAction step_action,
|
||||
int step_count,
|
||||
StackFrame::Id frame_id);
|
||||
void PrepareStep(StepAction step_action, int step_count);
|
||||
void PrepareStepIn(Handle<JSFunction> function);
|
||||
void PrepareStepOnThrow();
|
||||
void ClearStepping();
|
||||
|
@ -943,17 +943,11 @@ function ExecutionState(break_id) {
|
||||
this.selected_frame = 0;
|
||||
}
|
||||
|
||||
ExecutionState.prototype.prepareStep = function(opt_action, opt_count,
|
||||
opt_callframe) {
|
||||
ExecutionState.prototype.prepareStep = function(opt_action, opt_count) {
|
||||
var action = Debug.StepAction.StepIn;
|
||||
if (!IS_UNDEFINED(opt_action)) action = TO_NUMBER(opt_action);
|
||||
var count = opt_count ? TO_NUMBER(opt_count) : 1;
|
||||
var callFrameId = 0;
|
||||
if (!IS_UNDEFINED(opt_callframe)) {
|
||||
callFrameId = opt_callframe.details_.frameId();
|
||||
}
|
||||
|
||||
return %PrepareStep(this.break_id, action, count, callFrameId);
|
||||
return %PrepareStep(this.break_id, action, count);
|
||||
};
|
||||
|
||||
ExecutionState.prototype.evaluateGlobal = function(source, disable_break,
|
||||
|
@ -1212,7 +1212,7 @@ RUNTIME_FUNCTION(Runtime_IsBreakOnException) {
|
||||
// of frames to step down.
|
||||
RUNTIME_FUNCTION(Runtime_PrepareStep) {
|
||||
HandleScope scope(isolate);
|
||||
DCHECK(args.length() == 4);
|
||||
DCHECK(args.length() == 3);
|
||||
CONVERT_NUMBER_CHECKED(int, break_id, Int32, args[0]);
|
||||
RUNTIME_ASSERT(isolate->debug()->CheckExecutionState(break_id));
|
||||
|
||||
@ -1220,15 +1220,6 @@ RUNTIME_FUNCTION(Runtime_PrepareStep) {
|
||||
return isolate->Throw(isolate->heap()->illegal_argument_string());
|
||||
}
|
||||
|
||||
CONVERT_NUMBER_CHECKED(int, wrapped_frame_id, Int32, args[3]);
|
||||
|
||||
StackFrame::Id frame_id;
|
||||
if (wrapped_frame_id == 0) {
|
||||
frame_id = StackFrame::NO_ID;
|
||||
} else {
|
||||
frame_id = DebugFrameHelper::UnwrapFrameId(wrapped_frame_id);
|
||||
}
|
||||
|
||||
// Get the step action and check validity.
|
||||
StepAction step_action = static_cast<StepAction>(NumberToInt32(args[1]));
|
||||
if (step_action != StepIn && step_action != StepNext &&
|
||||
@ -1236,11 +1227,6 @@ RUNTIME_FUNCTION(Runtime_PrepareStep) {
|
||||
return isolate->Throw(isolate->heap()->illegal_argument_string());
|
||||
}
|
||||
|
||||
if (frame_id != StackFrame::NO_ID && step_action != StepNext &&
|
||||
step_action != StepOut) {
|
||||
return isolate->ThrowIllegalOperation();
|
||||
}
|
||||
|
||||
// Get the number of steps.
|
||||
int step_count = NumberToInt32(args[2]);
|
||||
if (step_count < 1) {
|
||||
@ -1252,7 +1238,7 @@ RUNTIME_FUNCTION(Runtime_PrepareStep) {
|
||||
|
||||
// Prepare step.
|
||||
isolate->debug()->PrepareStep(static_cast<StepAction>(step_action),
|
||||
step_count, frame_id);
|
||||
step_count);
|
||||
return isolate->heap()->undefined_value();
|
||||
}
|
||||
|
||||
|
@ -183,7 +183,7 @@ namespace internal {
|
||||
F(ClearBreakPoint, 1, 1) \
|
||||
F(ChangeBreakOnException, 2, 1) \
|
||||
F(IsBreakOnException, 1, 1) \
|
||||
F(PrepareStep, 4, 1) \
|
||||
F(PrepareStep, 3, 1) \
|
||||
F(ClearStepping, 0, 1) \
|
||||
F(DebugEvaluate, 6, 1) \
|
||||
F(DebugEvaluateGlobal, 4, 1) \
|
||||
|
@ -341,7 +341,7 @@ static void ChangeBreakOnExceptionFromJS(v8::Isolate* isolate, bool caught,
|
||||
// Prepare to step to next break location.
|
||||
static void PrepareStep(StepAction step_action) {
|
||||
v8::internal::Debug* debug = CcTest::i_isolate()->debug();
|
||||
debug->PrepareStep(step_action, 1, StackFrame::NO_ID);
|
||||
debug->PrepareStep(step_action, 1);
|
||||
}
|
||||
|
||||
|
||||
|
@ -53,8 +53,8 @@ function h() {
|
||||
}
|
||||
}
|
||||
|
||||
function TestCase(frame_index, step_count, expected_final_state) {
|
||||
print("Test case, parameters " + frame_index + "/" + step_count);
|
||||
function TestCase(step_count, expected_final_state) {
|
||||
print("Test case, step count: " + step_count);
|
||||
|
||||
var listener_exception = null;
|
||||
var state_snapshot;
|
||||
@ -68,12 +68,7 @@ function TestCase(frame_index, step_count, expected_final_state) {
|
||||
if (event == Debug.DebugEvent.Break) {
|
||||
if (listener_state == 0) {
|
||||
Debug.clearBreakPoint(bp);
|
||||
var context_frame;
|
||||
if (frame_index !== undefined) {
|
||||
context_frame = exec_state.frame(frame_index);
|
||||
}
|
||||
exec_state.prepareStep(Debug.StepAction.StepNext,
|
||||
step_count, context_frame);
|
||||
exec_state.prepareStep(Debug.StepAction.StepNext, step_count);
|
||||
listener_state = 1;
|
||||
} else if (listener_state == 1) {
|
||||
state_snapshot = String(state);
|
||||
@ -107,26 +102,8 @@ function TestCase(frame_index, step_count, expected_final_state) {
|
||||
// Warm-up -- make sure all is compiled and ready for breakpoint.
|
||||
h();
|
||||
|
||||
|
||||
// Stepping in the default (top) frame.
|
||||
TestCase(undefined, 0, "0,0,-1");
|
||||
TestCase(undefined, 1, "0,0,-1");
|
||||
TestCase(undefined, 2, "0,0,0");
|
||||
TestCase(undefined, 5, "0,0,1");
|
||||
TestCase(undefined, 8, "0,0,3");
|
||||
|
||||
// Stepping in the frame #0 (should be exactly the same as above).
|
||||
TestCase(0, 0, "0,0,-1");
|
||||
TestCase(0, 1, "0,0,-1");
|
||||
TestCase(0, 2, "0,0,0");
|
||||
TestCase(0, 5, "0,0,1");
|
||||
TestCase(0, 8, "0,0,3");
|
||||
|
||||
// Stepping in the frame #1.
|
||||
TestCase(1, 0, "0,0,3");
|
||||
TestCase(1, 3, "0,1,3");
|
||||
TestCase(1, 7, "0,3,3");
|
||||
|
||||
// Stepping in the frame #2.
|
||||
TestCase(2, 3, "1,3,3");
|
||||
TestCase(2, 7, "3,3,3");
|
||||
TestCase(0, "0,0,-1");
|
||||
TestCase(1, "0,0,-1");
|
||||
TestCase(2, "0,0,0");
|
||||
TestCase(5, "0,0,1");
|
||||
TestCase(8, "0,0,2");
|
@ -30,11 +30,6 @@
|
||||
# All tests in the bug directory are expected to fail.
|
||||
'bugs/*': [FAIL],
|
||||
|
||||
##############################################################################
|
||||
# Flaky tests.
|
||||
# BUG(v8:2921).
|
||||
'debug-step-4-in-frame': [PASS, FAIL, SLOW],
|
||||
|
||||
##############################################################################
|
||||
# Fails.
|
||||
'regress/regress-1119': [FAIL],
|
||||
|
Loading…
Reference in New Issue
Block a user