Home | History | Annotate | Download | only in debug
      1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 #include "base/debug/debugger.h"
      6 #include "base/logging.h"
      7 #include "base/threading/platform_thread.h"
      8 #include "build/build_config.h"
      9 
     10 namespace base {
     11 namespace debug {
     12 
     13 static bool is_debug_ui_suppressed = false;
     14 
     15 bool WaitForDebugger(int wait_seconds, bool silent) {
     16 #if defined(OS_ANDROID)
     17   // The pid from which we know which process to attach to are not output by
     18   // android ddms, so we have to print it out explicitly.
     19   DLOG(INFO) << "DebugUtil::WaitForDebugger(pid=" << static_cast<int>(getpid())
     20              << ")";
     21 #endif
     22   for (int i = 0; i < wait_seconds * 10; ++i) {
     23     if (BeingDebugged()) {
     24       if (!silent)
     25         BreakDebugger();
     26       return true;
     27     }
     28     PlatformThread::Sleep(TimeDelta::FromMilliseconds(100));
     29   }
     30   return false;
     31 }
     32 
     33 void SetSuppressDebugUI(bool suppress) {
     34   is_debug_ui_suppressed = suppress;
     35 }
     36 
     37 bool IsDebugUISuppressed() {
     38   return is_debug_ui_suppressed;
     39 }
     40 
     41 }  // namespace debug
     42 }  // namespace base
     43