Dump GC maps/verification for methods with bad roots.
Change-Id: Iec32ea30420a6fac318f947108248bf4207f279c
diff --git a/src/gc/mark_sweep.cc b/src/gc/mark_sweep.cc
index 8637370..0869e26 100644
--- a/src/gc/mark_sweep.cc
+++ b/src/gc/mark_sweep.cc
@@ -37,6 +37,7 @@
#include "timing_logger.h"
#include "thread.h"
#include "thread_list.h"
+#include "verifier/method_verifier.h"
namespace art {
@@ -185,9 +186,10 @@
LargeObjectSpace* large_object_space = GetHeap()->GetLargeObjectsSpace();
if (!large_object_space->Contains(root)) {
LOG(ERROR) << "Found invalid root: " << root;
- LOG(ERROR) << "VReg / Shadow frame offset: " << vreg;
+ LOG(ERROR) << "VReg: " << vreg;
if (method != NULL) {
- LOG(ERROR) << "In method " << PrettyMethod(method, true);
+ LOG(ERROR) << "In method " << PrettyMethod(method, true) << "\nVerifier output:\n";
+ verifier::MethodVerifier::VerifyMethodAndDump(const_cast<AbstractMethod*>(method));
}
}
}