From c42b0e82574f13089af6afb61d46defc8c839218 Mon Sep 17 00:00:00 2001 From: yangguo Date: Tue, 24 Feb 2015 04:30:34 -0800 Subject: [PATCH] Fix bogus assertion in Debug::PrepareStep. R=svenpanne@chromium.org BUG=chromium:461042 LOG=N Review URL: https://codereview.chromium.org/948313002 Cr-Commit-Position: refs/heads/master@{#26818} --- src/debug.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/debug.cc b/src/debug.cc index 46c9e1ebde..ea402ffa3d 100644 --- a/src/debug.cc +++ b/src/debug.cc @@ -1355,6 +1355,7 @@ void Debug::PrepareStep(StepAction step_action, it.FindBreakLocationFromAddress(frame->pc() - 1); is_exit = it.IsExit(); + is_construct_call = RelocInfo::IsConstructCall(it.rmode()); if (thread_local_.restarter_frame_function_pointer_ == NULL) { if (RelocInfo::IsCodeTarget(it.rinfo()->rmode())) { @@ -1363,7 +1364,6 @@ void Debug::PrepareStep(StepAction step_action, Code* code = Code::GetCodeFromTargetAddress(target); is_call_target = code->is_call_stub(); - is_construct_call = RelocInfo::IsConstructCall(it.rmode()); is_inline_cache_stub = code->is_inline_cache_stub(); is_load_or_store = is_inline_cache_stub && !is_call_target; @@ -1512,7 +1512,7 @@ void Debug::PrepareStep(StepAction step_action, // this function (Debug::PrepareStep) which should flood target function // with breakpoints. DCHECK(is_construct_call || is_inline_cache_stub || - !call_function_stub.is_null()); + !call_function_stub.is_null() || is_at_restarted_function); ActivateStepIn(frame); } }