Add more debug logging to VerifyNoMissingCardMarkVisitor::CheckReference.

Test: art/test.py
Bug: 113858074
Change-Id: I46a969a4e4f536e3a8925f6ed4bc7eebee6b458d
diff --git a/runtime/gc/collector/concurrent_copying.cc b/runtime/gc/collector/concurrent_copying.cc
index 3ac2486..3a80008 100644
--- a/runtime/gc/collector/concurrent_copying.cc
+++ b/runtime/gc/collector/concurrent_copying.cc
@@ -643,9 +643,16 @@
 
   void CheckReference(mirror::Object* ref, int32_t offset = -1) const
       REQUIRES_SHARED(Locks::mutator_lock_) {
-    CHECK(ref == nullptr || !cc_->region_space_->IsInNewlyAllocatedRegion(ref))
+    if (ref != nullptr && cc_->region_space_->IsInNewlyAllocatedRegion(ref)) {
+      LOG(FATAL_WITHOUT_ABORT)
         << holder_->PrettyTypeOf() << "(" << holder_.Ptr() << ") references object "
         << ref->PrettyTypeOf() << "(" << ref << ") in newly allocated region at offset=" << offset;
+      LOG(FATAL_WITHOUT_ABORT) << "time=" << cc_->region_space_->Time();
+      constexpr const char* kIndent = "  ";
+      LOG(FATAL_WITHOUT_ABORT) << cc_->DumpReferenceInfo(holder_.Ptr(), "holder_", kIndent);
+      LOG(FATAL_WITHOUT_ABORT) << cc_->DumpReferenceInfo(ref, "ref", kIndent);
+      LOG(FATAL) << "Unexpected reference to newly allocated region.";
+    }
   }
 
  private: