< prev index next >

src/share/vm/gc_implementation/parallelScavenge/psPromotionLAB.cpp

Print this page

        

@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License version 2 only, as
  * published by the Free Software Foundation.

@@ -150,15 +150,26 @@
 }
 
 bool PSOldPromotionLAB::lab_is_valid(MemRegion lab) {
   ParallelScavengeHeap* heap = (ParallelScavengeHeap*)Universe::heap();
   assert(heap->kind() == CollectedHeap::ParallelScavengeHeap, "Sanity");
-  assert(_start_array->covered_region().contains(lab), "Sanity");
 
+  MemRegion covered_region = _start_array->covered_region();
   PSOldGen* old_gen = heap->old_gen();
   MemRegion used = old_gen->object_space()->used_region();
 
+  assert(covered_region.contains(lab),
+         err_msg("New PLAB is not in covered_region [ "PTR_FORMAT", "PTR_FORMAT" ], "
+                 "new PLAB [ "PTR_FORMAT", "PTR_FORMAT" ], "
+                 "object space [ "PTR_FORMAT", "PTR_FORMAT" ]",
+                 p2i(covered_region.start()),
+                 p2i(covered_region.end()),
+                 p2i(lab.start()),
+                 p2i(lab.end()),
+                 p2i(used.start()),
+                 p2i(used.end())));
+
   if (used.contains(lab)) {
     return true;
   }
 
   return false;
< prev index next >