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 
      9 namespace base {
     10 namespace debug {
     11 
     12 static bool is_debug_ui_suppressed = false;
     13 
     14 bool WaitForDebugger(int wait_seconds, bool silent) {
     15 #if defined(OS_ANDROID)
     16   // The pid from which we know which process to attach to are not output by
     17   // android ddms, so we have to print it out explicitly.
     18   DLOG(INFO) << "DebugUtil::WaitForDebugger(pid=" << static_cast<int>(getpid())
     19              << ")";
     20 #endif
     21   for (int i = 0; i < wait_seconds * 10; ++i) {
     22     if (BeingDebugged()) {
     23       if (!silent)
     24         BreakDebugger();
     25       return true;
     26     }
     27     PlatformThread::Sleep(TimeDelta::FromMilliseconds(100));
     28   }
     29   return false;
     30 }
     31 
     32 void SetSuppressDebugUI(bool suppress) {
     33   is_debug_ui_suppressed = suppress;
     34 }
     35 
     36 bool IsDebugUISuppressed() {
     37   return is_debug_ui_suppressed;
     38 }
     39 
     40 }  // namespace debug
     41 }  // namespace base
     42