diff options
-rw-r--r-- | runtime/arch/stub_test.cc | 2 | ||||
-rw-r--r-- | runtime/base/logging.h | 7 | ||||
-rw-r--r-- | runtime/debugger.cc | 6 | ||||
-rw-r--r-- | runtime/fault_handler.cc | 10 | ||||
-rw-r--r-- | runtime/jdwp/jdwp_adb.cc | 4 | ||||
-rw-r--r-- | runtime/jdwp/jdwp_event.cc | 2 | ||||
-rw-r--r-- | runtime/jdwp/jdwp_main.cc | 2 | ||||
-rw-r--r-- | runtime/jdwp/jdwp_socket.cc | 4 | ||||
-rw-r--r-- | runtime/native/dalvik_system_ZygoteHooks.cc | 4 | ||||
-rw-r--r-- | runtime/parsed_options.cc | 21 | ||||
-rw-r--r-- | runtime/profiler.cc | 10 | ||||
-rw-r--r-- | runtime/runtime.cc | 2 | ||||
-rw-r--r-- | runtime/thread_list.cc | 2 |
13 files changed, 42 insertions, 34 deletions
diff --git a/runtime/arch/stub_test.cc b/runtime/arch/stub_test.cc index 4438f25..1d05540 100644 --- a/runtime/arch/stub_test.cc +++ b/runtime/arch/stub_test.cc @@ -827,7 +827,7 @@ TEST_F(StubTest, AllocObject) { sirt_refs.push_back(ref); } } - LOG(DEBUG) << "Used " << sirt_refs.size() << " arrays to fill space."; + LOG(INFO) << "Used " << sirt_refs.size() << " arrays to fill space."; // Allocate simple objects till it fails. while (!self->IsExceptionPending()) { diff --git a/runtime/base/logging.h b/runtime/base/logging.h index c4461fa..6944278 100644 --- a/runtime/base/logging.h +++ b/runtime/base/logging.h @@ -286,17 +286,18 @@ class ToStr { // and the "-verbose:" command line argument. struct LogVerbosity { bool class_linker; // Enabled with "-verbose:class". - bool verifier; bool compiler; - bool heap; bool gc; + bool heap; bool jdwp; bool jni; bool monitor; + bool profiler; + bool signals; bool startup; bool third_party_jni; // Enabled with "-verbose:third-party-jni". bool threads; - bool signals; + bool verifier; }; extern LogVerbosity gLogVerbosity; diff --git a/runtime/debugger.cc b/runtime/debugger.cc index 1efd2e0..22a0e22 100644 --- a/runtime/debugger.cc +++ b/runtime/debugger.cc @@ -595,17 +595,17 @@ void Dbg::StopJdwp() { void Dbg::GcDidFinish() { if (gDdmHpifWhen != HPIF_WHEN_NEVER) { ScopedObjectAccess soa(Thread::Current()); - LOG(DEBUG) << "Sending heap info to DDM"; + VLOG(jdwp) << "Sending heap info to DDM"; DdmSendHeapInfo(gDdmHpifWhen); } if (gDdmHpsgWhen != HPSG_WHEN_NEVER) { ScopedObjectAccess soa(Thread::Current()); - LOG(DEBUG) << "Dumping heap to DDM"; + VLOG(jdwp) << "Dumping heap to DDM"; DdmSendHeapSegments(false); } if (gDdmNhsgWhen != HPSG_WHEN_NEVER) { ScopedObjectAccess soa(Thread::Current()); - LOG(DEBUG) << "Dumping native heap to DDM"; + VLOG(jdwp) << "Dumping native heap to DDM"; DdmSendHeapSegments(true); } } diff --git a/runtime/fault_handler.cc b/runtime/fault_handler.cc index 283faa2..c457f12 100644 --- a/runtime/fault_handler.cc +++ b/runtime/fault_handler.cc @@ -67,11 +67,15 @@ void FaultManager::Init() { } void FaultManager::HandleFault(int sig, siginfo_t* info, void* context) { - LOG(DEBUG) << "Handling fault"; + // BE CAREFUL ALLOCATING HERE INCLUDING USING LOG(...) + // + // If malloc calls abort, it will be holding its lock. + // If the handler tries to call malloc, it will deadlock. + VLOG(signals) << "Handling fault"; if (IsInGeneratedCode(context, true)) { - LOG(DEBUG) << "in generated code, looking for handler"; + VLOG(signals) << "in generated code, looking for handler"; for (const auto& handler : generated_code_handlers_) { - LOG(DEBUG) << "invoking Action on handler " << handler; + VLOG(signals) << "invoking Action on handler " << handler; if (handler->Action(sig, info, context)) { return; } diff --git a/runtime/jdwp/jdwp_adb.cc b/runtime/jdwp/jdwp_adb.cc index cbf35be..fe91bb6 100644 --- a/runtime/jdwp/jdwp_adb.cc +++ b/runtime/jdwp/jdwp_adb.cc @@ -362,7 +362,7 @@ bool JdwpAdbState::ProcessIncoming() { } if (wake_pipe_[0] >= 0 && FD_ISSET(wake_pipe_[0], &readfds)) { - LOG(DEBUG) << "Got wake-up signal, bailing out of select"; + VLOG(jdwp) << "Got wake-up signal, bailing out of select"; goto fail; } if (control_sock_ >= 0 && FD_ISSET(control_sock_, &readfds)) { @@ -385,7 +385,7 @@ bool JdwpAdbState::ProcessIncoming() { if (errno != EINTR) { goto fail; } - LOG(DEBUG) << "+++ EINTR hit"; + VLOG(jdwp) << "+++ EINTR hit"; return true; } else if (readCount == 0) { /* EOF hit -- far end went away */ diff --git a/runtime/jdwp/jdwp_event.cc b/runtime/jdwp/jdwp_event.cc index 223b7a1..4e2b0f8 100644 --- a/runtime/jdwp/jdwp_event.cc +++ b/runtime/jdwp/jdwp_event.cc @@ -280,7 +280,7 @@ void JdwpState::UnregisterEventById(uint32_t requestId) { if (found) { Dbg::ManageDeoptimization(); } else { - LOG(DEBUG) << StringPrintf("Odd: no match when removing event reqId=0x%04x", requestId); + LOG(WARNING) << StringPrintf("Odd: no match when removing event reqId=0x%04x", requestId); } } diff --git a/runtime/jdwp/jdwp_main.cc b/runtime/jdwp/jdwp_main.cc index f480256..2419ca6 100644 --- a/runtime/jdwp/jdwp_main.cc +++ b/runtime/jdwp/jdwp_main.cc @@ -573,7 +573,7 @@ Thread* JdwpState::GetDebugThread() { */ int64_t JdwpState::LastDebuggerActivity() { if (!Dbg::IsDebuggerActive()) { - LOG(DEBUG) << "no active debugger"; + LOG(WARNING) << "no active debugger"; return -1; } diff --git a/runtime/jdwp/jdwp_socket.cc b/runtime/jdwp/jdwp_socket.cc index 3f5546e..4a80957 100644 --- a/runtime/jdwp/jdwp_socket.cc +++ b/runtime/jdwp/jdwp_socket.cc @@ -416,7 +416,7 @@ bool JdwpSocketState::ProcessIncoming() { if (listenSock >= 0) { LOG(ERROR) << "Exit wake set, but not exiting?"; } else { - LOG(DEBUG) << "Got wake-up signal, bailing out of select"; + VLOG(jdwp) << "Got wake-up signal, bailing out of select"; } goto fail; } @@ -442,7 +442,7 @@ bool JdwpSocketState::ProcessIncoming() { if (errno != EINTR) { goto fail; } - LOG(DEBUG) << "+++ EINTR hit"; + VLOG(jdwp) << "+++ EINTR hit"; return true; } else if (readCount == 0) { /* EOF hit -- far end went away */ diff --git a/runtime/native/dalvik_system_ZygoteHooks.cc b/runtime/native/dalvik_system_ZygoteHooks.cc index 1008491..f541633 100644 --- a/runtime/native/dalvik_system_ZygoteHooks.cc +++ b/runtime/native/dalvik_system_ZygoteHooks.cc @@ -58,12 +58,12 @@ static void EnableDebugFeatures(uint32_t debug_flags) { Runtime* runtime = Runtime::Current(); JavaVMExt* vm = runtime->GetJavaVM(); if (!vm->check_jni) { - LOG(DEBUG) << "Late-enabling -Xcheck:jni"; + VLOG(jni) << "Late-enabling -Xcheck:jni"; vm->SetCheckJniEnabled(true); // There's only one thread running at this point, so only one JNIEnv to fix up. Thread::Current()->GetJniEnv()->SetCheckJniEnabled(true); } else { - LOG(DEBUG) << "Not late-enabling -Xcheck:jni (already on)"; + VLOG(jni) << "Not late-enabling -Xcheck:jni (already on)"; } debug_flags &= ~DEBUG_ENABLE_CHECKJNI; } diff --git a/runtime/parsed_options.cc b/runtime/parsed_options.cc index 1562527..3c14c23 100644 --- a/runtime/parsed_options.cc +++ b/runtime/parsed_options.cc @@ -223,16 +223,17 @@ bool ParsedOptions::Parse(const Runtime::Options& options, bool ignore_unrecogni // gLogVerbosity.class_linker = true; // TODO: don't check this in! // gLogVerbosity.compiler = true; // TODO: don't check this in! -// gLogVerbosity.verifier = true; // TODO: don't check this in! -// gLogVerbosity.heap = true; // TODO: don't check this in! // gLogVerbosity.gc = true; // TODO: don't check this in! +// gLogVerbosity.heap = true; // TODO: don't check this in! // gLogVerbosity.jdwp = true; // TODO: don't check this in! // gLogVerbosity.jni = true; // TODO: don't check this in! // gLogVerbosity.monitor = true; // TODO: don't check this in! +// gLogVerbosity.profiler = true; // TODO: don't check this in! +// gLogVerbosity.signals = true; // TODO: don't check this in! // gLogVerbosity.startup = true; // TODO: don't check this in! // gLogVerbosity.third_party_jni = true; // TODO: don't check this in! // gLogVerbosity.threads = true; // TODO: don't check this in! -// gLogVerbosity.signals = true; // TODO: don't check this in! +// gLogVerbosity.verifier = true; // TODO: don't check this in! method_trace_ = false; method_trace_file_ = "/data/method-trace-file.bin"; @@ -445,28 +446,30 @@ bool ParsedOptions::Parse(const Runtime::Options& options, bool ignore_unrecogni for (size_t i = 0; i < verbose_options.size(); ++i) { if (verbose_options[i] == "class") { gLogVerbosity.class_linker = true; - } else if (verbose_options[i] == "verifier") { - gLogVerbosity.verifier = true; } else if (verbose_options[i] == "compiler") { gLogVerbosity.compiler = true; - } else if (verbose_options[i] == "heap") { - gLogVerbosity.heap = true; } else if (verbose_options[i] == "gc") { gLogVerbosity.gc = true; + } else if (verbose_options[i] == "heap") { + gLogVerbosity.heap = true; } else if (verbose_options[i] == "jdwp") { gLogVerbosity.jdwp = true; } else if (verbose_options[i] == "jni") { gLogVerbosity.jni = true; } else if (verbose_options[i] == "monitor") { gLogVerbosity.monitor = true; + } else if (verbose_options[i] == "profiler") { + gLogVerbosity.profiler = true; + } else if (verbose_options[i] == "signals") { + gLogVerbosity.signals = true; } else if (verbose_options[i] == "startup") { gLogVerbosity.startup = true; } else if (verbose_options[i] == "third-party-jni") { gLogVerbosity.third_party_jni = true; } else if (verbose_options[i] == "threads") { gLogVerbosity.threads = true; - } else if (verbose_options[i] == "signals") { - gLogVerbosity.signals = true; + } else if (verbose_options[i] == "verifier") { + gLogVerbosity.verifier = true; } else { Usage("Unknown -verbose option %s\n", verbose_options[i].c_str()); return false; diff --git a/runtime/profiler.cc b/runtime/profiler.cc index 7b117f4..6e33f9d 100644 --- a/runtime/profiler.cc +++ b/runtime/profiler.cc @@ -147,7 +147,7 @@ void* BackgroundMethodSamplingProfiler::RunProfilerThread(void* arg) { startup_delay = 0; - LOG(DEBUG) << "Delaying profile start for " << delay_secs << " secs"; + VLOG(profiler) << "Delaying profile start for " << delay_secs << " secs"; MutexLock mu(self, profiler->wait_lock_); profiler->period_condition_.TimedWait(self, delay_secs * 1000, 0); @@ -167,7 +167,7 @@ void* BackgroundMethodSamplingProfiler::RunProfilerThread(void* arg) { uint64_t end_us = start_us + profiler->duration_s_ * UINT64_C(1000000); uint64_t now_us = start_us; - LOG(DEBUG) << "Starting profiling run now for " << PrettyDuration((end_us - start_us) * 1000); + VLOG(profiler) << "Starting profiling run now for " << PrettyDuration((end_us - start_us) * 1000); SampleCheckpoint check_point(profiler); @@ -221,7 +221,7 @@ void* BackgroundMethodSamplingProfiler::RunProfilerThread(void* arg) { // After the profile has been taken, write it out. ScopedObjectAccess soa(self); // Acquire the mutator lock. uint32_t size = profiler->WriteProfile(); - LOG(DEBUG) << "Profile size: " << size; + VLOG(profiler) << "Profile size: " << size; } } @@ -233,7 +233,7 @@ void* BackgroundMethodSamplingProfiler::RunProfilerThread(void* arg) { // Write out the profile file if we are generating a profile. uint32_t BackgroundMethodSamplingProfiler::WriteProfile() { std::string full_name = profile_file_name_; - LOG(DEBUG) << "Saving profile to " << full_name; + VLOG(profiler) << "Saving profile to " << full_name; int fd = open(full_name.c_str(), O_RDWR); if (fd < 0) { @@ -469,7 +469,7 @@ uint32_t ProfileSampleResults::Write(std::ostream &os) { num_null_methods_ += previous_num_null_methods_; num_boot_methods_ += previous_num_boot_methods_; - LOG(DEBUG) << "Profile: " << num_samples_ << "/" << num_null_methods_ << "/" << num_boot_methods_; + VLOG(profiler) << "Profile: " << num_samples_ << "/" << num_null_methods_ << "/" << num_boot_methods_; os << num_samples_ << "/" << num_null_methods_ << "/" << num_boot_methods_ << "\n"; uint32_t num_methods = 0; for (int i = 0 ; i < kHashSize; i++) { diff --git a/runtime/runtime.cc b/runtime/runtime.cc index 6d9dfa6..d84824a 100644 --- a/runtime/runtime.cc +++ b/runtime/runtime.cc @@ -1301,6 +1301,6 @@ void Runtime::AddCurrentRuntimeFeaturesAsDex2OatArguments(std::vector<std::strin } void Runtime::UpdateProfilerState(int state) { - LOG(DEBUG) << "Profiler state updated to " << state; + VLOG(profiler) << "Profiler state updated to " << state; } } // namespace art diff --git a/runtime/thread_list.cc b/runtime/thread_list.cc index 4eb580b..31d8d60 100644 --- a/runtime/thread_list.cc +++ b/runtime/thread_list.cc @@ -650,7 +650,7 @@ void ThreadList::SuspendSelfForDebugger() { // can happen if the debugger lets go while a SIGQUIT thread // dump event is pending (assuming SignalCatcher was resumed for // just long enough to try to grab the thread-suspend lock). - LOG(DEBUG) << *self << " still suspended after undo " + LOG(WARNING) << *self << " still suspended after undo " << "(suspend count=" << self->GetSuspendCount() << ")"; } } |