summaryrefslogtreecommitdiff
path: root/compiler/driver/compiler_driver.cc
diff options
context:
space:
mode:
author Andreas Gampe <agampe@google.com> 2017-07-27 12:12:22 -0700
committer Andreas Gampe <agampe@google.com> 2017-07-27 12:15:44 -0700
commitfdfb4d4c20620d8ef725bcba5c8bdaba9849b6f7 (patch)
tree58dc47a73abd8f9e34f3a85446df1faaad52e89a /compiler/driver/compiler_driver.cc
parent65e514a0ba9eb6d159cee25d0a731d1e4e00a3c9 (diff)
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
Diffstat (limited to 'compiler/driver/compiler_driver.cc')
-rw-r--r--compiler/driver/compiler_driver.cc7
1 files changed, 5 insertions, 2 deletions
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()) {