Modified: trunk/Source/_javascript_Core/ChangeLog (275228 => 275229)
--- trunk/Source/_javascript_Core/ChangeLog 2021-03-30 19:47:31 UTC (rev 275228)
+++ trunk/Source/_javascript_Core/ChangeLog 2021-03-30 20:21:32 UTC (rev 275229)
@@ -1,5 +1,15 @@
2021-03-30 Mark Lam <[email protected]>
+ Add more information to GC verifier verbose dumps.
+ https://bugs.webkit.org/show_bug.cgi?id=223951
+
+ Reviewed by Yusuke Suzuki.
+
+ * heap/VerifierSlotVisitor.cpp:
+ (JSC::VerifierSlotVisitor::dumpMarkerData):
+
+2021-03-30 Mark Lam <[email protected]>
+
Ensure that GlobalPropertyInfo is allocated on the stack.
https://bugs.webkit.org/show_bug.cgi?id=223911
rdar://75865742
Modified: trunk/Source/_javascript_Core/heap/VerifierSlotVisitor.cpp (275228 => 275229)
--- trunk/Source/_javascript_Core/heap/VerifierSlotVisitor.cpp 2021-03-30 19:47:31 UTC (rev 275228)
+++ trunk/Source/_javascript_Core/heap/VerifierSlotVisitor.cpp 2021-03-30 20:21:32 UTC (rev 275229)
@@ -252,6 +252,11 @@
if (cell) {
if (isJSCellKind(cell->cellKind()))
dataLogLn(JSValue(static_cast<JSCell*>(cell)));
+
+ bool isMarked = heap()->isMarked(cell);
+ const char* wasOrWasNot = isMarked ? "was" : "was NOT";
+ dataLogLn("In the real GC, cell ", RawPointer(cell), " ", wasOrWasNot, " marked.");
+
if (cell->isPreciseAllocation())
markerData = markerDataForPreciseAllocation(cell->preciseAllocation());
else
@@ -260,7 +265,7 @@
dataLogLn("Marker data is not available for cell ", RawPointer(cell));
break;
}
- dataLog("Cell ", RawPointer(cell), " was visited");
+ dataLog("In the verifier GC, cell ", RawPointer(cell), " was visited");
} else {
RELEASE_ASSERT(opaqueRoot);
@@ -267,7 +272,7 @@
bool containsOpaqueRoot = heap()->m_opaqueRoots.contains(opaqueRoot);
const char* wasOrWasNot = containsOpaqueRoot ? "was" : "was NOT";
- dataLogLn("In the real GC, opaque root", RawPointer(opaqueRoot), " ", wasOrWasNot, " added to the heap's opaque roots.");
+ dataLogLn("In the real GC, opaque root ", RawPointer(opaqueRoot), " ", wasOrWasNot, " added to the heap's opaque roots.");
markerData = markerDataForOpaqueRoot(opaqueRoot);
if (!markerData) {
@@ -274,7 +279,7 @@
dataLogLn("Marker data is not available for opaque root ", RawPointer(opaqueRoot));
break;
}
- dataLog("Opaque root ", RawPointer(opaqueRoot), " was added");
+ dataLog("In the verifier GC, opaque root ", RawPointer(opaqueRoot), " was added");
}
ReferrerToken referrer = markerData->referrer();