Reviewers: Sven Panne,

Description:
Fix bogus assertion in Debug::PrepareStep.

[email protected]
BUG=chromium:461042
LOG=N

Please review this at https://codereview.chromium.org/948313002/

Base URL: https://chromium.googlesource.com/v8/v8.git@master

Affected files (+2, -2 lines):
  M src/debug.cc


Index: src/debug.cc
diff --git a/src/debug.cc b/src/debug.cc
index 46c9e1ebdef10dfb71204d89384a06b7a6eec807..ea402ffa3d8c44865b509c7a2b60dbcf1c887593 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);
   }
 }


--
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
--- You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to