From fdfb4d4c20620d8ef725bcba5c8bdaba9849b6f7 Mon Sep 17 00:00:00 2001 From: Andreas Gampe Date: Thu, 27 Jul 2017 12:12:22 -0700 Subject: ART: Modify --abort-on-hard-verifier-error Add --no-abort-on-hard-verifier-error to turn off the behavior. Use FATAL_WITHOUT_ABORT and abort() instead of LOG(FATAL) to avoid multiple printouts of stacks. Just shutting down thread pools still leads to three redundant stack dumps. Bug: 36902714 Test: m Change-Id: I35fef23fb36567b0d1deb7f16c2a2b43c3af47e8 --- compiler/driver/compiler_driver.cc | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'compiler/driver/compiler_driver.cc') diff --git a/compiler/driver/compiler_driver.cc b/compiler/driver/compiler_driver.cc index 341ca59e5c..756481df54 100644 --- a/compiler/driver/compiler_driver.cc +++ b/compiler/driver/compiler_driver.cc @@ -924,8 +924,11 @@ void CompilerDriver::PreCompile(jobject class_loader, VLOG(compiler) << "Verify: " << GetMemoryUsageString(false); if (had_hard_verifier_failure_ && GetCompilerOptions().AbortOnHardVerifierFailure()) { - LOG(FATAL) << "Had a hard failure verifying all classes, and was asked to abort in such " - << "situations. Please check the log."; + // Avoid dumping threads. Even if we shut down the thread pools, there will still be three + // instances of this thread's stack. + LOG(FATAL_WITHOUT_ABORT) << "Had a hard failure verifying all classes, and was asked to abort " + << "in such situations. Please check the log."; + abort(); } if (compiler_options_->IsAnyCompilationEnabled()) { -- cgit v1.2.3-59-g8ed1b