Revert of Debugger: preserve stepping state after evaluating breakpoint condition...
authormachenbach <machenbach@chromium.org>
Sun, 17 May 2015 06:21:47 +0000 (23:21 -0700)
committerCommit bot <commit-bot@chromium.org>
Sun, 17 May 2015 06:21:39 +0000 (06:21 +0000)
Reason for revert:
[Sheriff] This breaks TSAN (makes some tests marked as flaky permanently fail):
http://build.chromium.org/p/client.v8/builders/V8%20Linux64%20TSAN/builds/3882

Original issue's description:
> Debugger: preserve stepping state after evaluating breakpoint condition.
>
> R=ulan@chromium.org, yurys@chromium.org
> BUG=chromium:467180
> LOG=N

TBR=ulan@chromium.org,yurys@chromium.org,yangguo@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=chromium:467180

Review URL: https://codereview.chromium.org/1130123007

Cr-Commit-Position: refs/heads/master@{#28436}

src/debug.cc
src/debug.h
test/mjsunit/regress/regress-crbug-467180.js [deleted file]

index d477c86..82fab36 100644 (file)
@@ -897,11 +897,6 @@ Handle<Object> Debug::CheckBreakPoints(Handle<Object> break_point_objects) {
   Handle<FixedArray> break_points_hit;
   int break_points_hit_count = 0;
   DCHECK(!break_point_objects->IsUndefined());
-
-  // Break points are checked by calling into Javascript. This could change
-  // the stepping state we are currently in.
-  PreserveDebugState state(this);
-
   if (break_point_objects->IsFixedArray()) {
     Handle<FixedArray> array(FixedArray::cast(*break_point_objects));
     break_points_hit = factory->NewFixedArray(array->length());
index 5fe56d3..9a9a3ba 100644 (file)
@@ -732,27 +732,6 @@ class Debug {
     Object** restarter_frame_function_pointer_;
   };
 
-
-  class PreserveDebugState {
-   public:
-    explicit PreserveDebugState(Debug* debug) : debug_(debug) {
-      size_t size = sizeof(debug_->thread_local_);
-      storage_ = NewArray<char>(size);
-      MemCopy(storage_, &debug_->thread_local_, size);
-    }
-
-    ~PreserveDebugState() {
-      size_t size = sizeof(debug_->thread_local_);
-      MemCopy(&debug_->thread_local_, storage_, size);
-      DeleteArray(storage_);
-    }
-
-   private:
-    Debug* debug_;
-    char* storage_;
-  };
-
-
   // Storage location for registers when handling debug break calls
   ThreadLocal thread_local_;
 
diff --git a/test/mjsunit/regress/regress-crbug-467180.js b/test/mjsunit/regress/regress-crbug-467180.js
deleted file mode 100644 (file)
index fcf5c30..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-// Copyright 2015 the V8 project authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-// Flags: --expose-debug-as debug
-
-function f() {
-  for (var i = 10; i < 14; i++) {  // 1
-    i;                             // 2
-  }
-}                                  // 3
-
-var state = "conditional";
-var log = [];
-var exception = null;
-
-function listener(event, exec_state, event_data, data) {
-  if (event != Debug.DebugEvent.Break) return;
-  try {
-    var label = +exec_state.frame(0).sourceLineText().substr(-1);
-    log.push(label);
-    if (label == 2) log.push(exec_state.frame(0).evaluate("i").value());
-    exec_state.prepareStep(Debug.StepAction.StepNext, 1);
-  } catch (e) {
-    exception = e;
-    print("Caught something. " + e + " " + e.stack);
-  };
-};
-
-
-var Debug = debug.Debug;
-Debug.setListener(listener);
-
-Debug.setBreakPoint(f, 2, 0, "i == 12");
-
-f();
-
-Debug.setListener(null);  // 4
-
-assertEquals([2,12,1,1,2,13,1,1,3,4], log);
-assertNull(exception);