summaryrefslogtreecommitdiff
path: root/runtime/runtime.cc
diff options
context:
space:
mode:
author Mathieu Chartier <mathieuc@google.com> 2015-12-10 17:11:07 -0800
committer Mathieu Chartier <mathieuc@google.com> 2015-12-10 17:11:07 -0800
commit0b8f1bfdfc721a41d98d13e12c4c67f62f698dfc (patch)
treebb82300941265c6f9093b699c5d4b8d75b97f827 /runtime/runtime.cc
parenta84784cab1021cb4b432dde2e4a7f421f9717cf0 (diff)
Skip DumpForSigQuit if debugger is active
Otherwise, the SIGQUIT dumping may get blocked on the mutator lock and freeze the debugger. Future work: Ideally we want to dump what we can instead of nothing. Bug: 26118154 Change-Id: I365612a3a34ca6d3215892e6c54b649b93365c80
Diffstat (limited to 'runtime/runtime.cc')
-rw-r--r--runtime/runtime.cc5
1 files changed, 5 insertions, 0 deletions
diff --git a/runtime/runtime.cc b/runtime/runtime.cc
index b6ba54f2b4..ee703eca39 100644
--- a/runtime/runtime.cc
+++ b/runtime/runtime.cc
@@ -1302,6 +1302,11 @@ void Runtime::RegisterRuntimeNativeMethods(JNIEnv* env) {
}
void Runtime::DumpForSigQuit(std::ostream& os) {
+ // Dumping for SIGQIT may cause deadlocks if the the debugger is active. b/26118154
+ if (Dbg::IsDebuggerActive()) {
+ LOG(INFO) << "Skipping DumpForSigQuit due to active debugger";
+ return;
+ }
GetClassLinker()->DumpForSigQuit(os);
GetInternTable()->DumpForSigQuit(os);
GetJavaVM()->DumpForSigQuit(os);