summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--runtime/gc/collector/concurrent_copying.cc18
1 files changed, 11 insertions, 7 deletions
diff --git a/runtime/gc/collector/concurrent_copying.cc b/runtime/gc/collector/concurrent_copying.cc
index 67383c4f36..b9118eca3f 100644
--- a/runtime/gc/collector/concurrent_copying.cc
+++ b/runtime/gc/collector/concurrent_copying.cc
@@ -954,15 +954,19 @@ void ConcurrentCopying::RemoveThreadMarkStackMapping(Thread* thread,
}
void ConcurrentCopying::AssertEmptyThreadMarkStackMap() {
- if (!thread_mark_stack_map_.empty()) {
- LOG(FATAL_WITHOUT_ABORT) << "thread_mark_stack_map not empty. size:"
- << thread_mark_stack_map_.size()
- << " Mappings:";
+ std::ostringstream oss;
+ auto capture_mappings = [this, &oss] () REQUIRES(mark_stack_lock_) {
for (const auto & iter : thread_mark_stack_map_) {
- LOG(FATAL_WITHOUT_ABORT) << "thread:" << iter.first << " mark-stack:" << iter.second;
+ oss << "thread:" << iter.first << " mark-stack:" << iter.second << "\n";
}
- LOG(FATAL) << "pooled_mark_stacks size:" << pooled_mark_stacks_.size();
- }
+ return oss.str();
+ };
+ CHECK(thread_mark_stack_map_.empty()) << "thread_mark_stack_map not empty. size:"
+ << thread_mark_stack_map_.size()
+ << "Mappings:\n"
+ << capture_mappings()
+ << "pooled_mark_stacks size:"
+ << pooled_mark_stacks_.size();
}
void ConcurrentCopying::AssertNoThreadMarkStackMapping(Thread* thread) {