Title: [214393] trunk/Source/_javascript_Core
Revision
214393
Author
[email protected]
Date
2017-03-24 22:34:02 -0700 (Fri, 24 Mar 2017)

Log Message

Add some instrumentation in Heap::resumeThePeriphery() to help debug an issue.
https://bugs.webkit.org/show_bug.cgi?id=170086
<rdar://problem/31253673>

Reviewed by Saam Barati.

Adding some instrumentation in Heap::resumeThePeriphery() to dump some Heap state
just before we RELEASE_ASSERT_NOT_REACHED.

* heap/Heap.cpp:
(JSC::Heap::resumeThePeriphery):

Modified Paths

Diff

Modified: trunk/Source/_javascript_Core/ChangeLog (214392 => 214393)


--- trunk/Source/_javascript_Core/ChangeLog	2017-03-25 01:13:23 UTC (rev 214392)
+++ trunk/Source/_javascript_Core/ChangeLog	2017-03-25 05:34:02 UTC (rev 214393)
@@ -1,3 +1,17 @@
+2017-03-24  Mark Lam  <[email protected]>
+
+        Add some instrumentation in Heap::resumeThePeriphery() to help debug an issue.
+        https://bugs.webkit.org/show_bug.cgi?id=170086
+        <rdar://problem/31253673>
+
+        Reviewed by Saam Barati.
+
+        Adding some instrumentation in Heap::resumeThePeriphery() to dump some Heap state
+        just before we RELEASE_ASSERT_NOT_REACHED.
+
+        * heap/Heap.cpp:
+        (JSC::Heap::resumeThePeriphery):
+
 2017-03-24  JF Bastien  <[email protected]>
 
         WebAssembly: store state in TLS instead of on VM

Modified: trunk/Source/_javascript_Core/heap/Heap.cpp (214392 => 214393)


--- trunk/Source/_javascript_Core/heap/Heap.cpp	2017-03-25 01:13:23 UTC (rev 214392)
+++ trunk/Source/_javascript_Core/heap/Heap.cpp	2017-03-25 05:34:02 UTC (rev 214393)
@@ -1499,6 +1499,30 @@
     
     if (!m_collectorBelievesThatTheWorldIsStopped) {
         dataLog("Fatal: collector does not believe that the world is stopped.\n");
+#if OS(DARWIN)
+        // FIXME: Remove this when no longer needed.
+        // https://bugs.webkit.org/show_bug.cgi?id=170094
+#if CPU(X86_64)
+        unsigned worldState = m_worldState.load();
+        asm volatile(
+            "int3"
+            :
+            : "a"(m_currentPhase), "b"(m_nextPhase), "c"(worldState), "S"(m_lastServedTicket), "D"(m_lastGrantedTicket)
+            : "memory");
+#elif CPU(ARM64)
+        unsigned worldState = m_worldState.load();
+        asm volatile(
+            "ldrb w0, %0\n"
+            "ldrb w1, %1\n"
+            "ldr w2, %2\n"
+            "ldr x3, %3\n"
+            "ldr x4, %4\n"
+            "brk #0"
+            :
+            : "m"(m_currentPhase), "m"(m_nextPhase), "m"(worldState), "m"(m_lastServedTicket), "m"(m_lastGrantedTicket)
+            : "memory");
+#endif
+#endif // OS(DARWIN)
         RELEASE_ASSERT_NOT_REACHED();
     }
     m_collectorBelievesThatTheWorldIsStopped = false;
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to