Add some more debug logging to AssertToSpaceInvariantInNonMovingSpace.
Test: art/test.py
Bug: 113577534
Bug: 67628039
Change-Id: I1bfa6aabd7969c481938f573b4c94bdc82a4ab5b
diff --git a/runtime/gc/collector/concurrent_copying.cc b/runtime/gc/collector/concurrent_copying.cc
index b4453d9..3ac2486 100644
--- a/runtime/gc/collector/concurrent_copying.cc
+++ b/runtime/gc/collector/concurrent_copying.cc
@@ -2320,6 +2320,7 @@
void ConcurrentCopying::AssertToSpaceInvariantInNonMovingSpace(mirror::Object* obj,
mirror::Object* ref) {
+ CHECK(ref != nullptr);
CHECK(!region_space_->HasAddress(ref)) << "obj=" << obj << " ref=" << ref;
// In a non-moving space. Check that the ref is marked.
if (immune_spaces_.ContainsObject(ref)) {
@@ -2352,9 +2353,11 @@
<< "Unmarked ref that's not on the allocation stack."
<< " obj=" << obj
<< " ref=" << ref
+ << " rb_state=" << ref->GetReadBarrierState()
<< " is_los=" << std::boolalpha << is_los << std::noboolalpha
<< " is_marking=" << std::boolalpha << is_marking_ << std::noboolalpha
- << " young_gen=" << std::boolalpha << young_gen_ << std::noboolalpha;
+ << " young_gen=" << std::boolalpha << young_gen_ << std::noboolalpha
+ << " self=" << Thread::Current();
}
}
}