| // Copyright (c) 2011 The Chromium Authors. All rights reserved. | |
| // Use of this source code is governed by a BSD-style license that can be | |
| // found in the LICENSE file. | |
| #include "base/debug/debugger.h" | |
| #include "base/logging.h" | |
| #include "base/threading/platform_thread.h" | |
| #include "build/build_config.h" | |
| namespace base { | |
| namespace debug { | |
| static bool is_debug_ui_suppressed = false; | |
| bool WaitForDebugger(int wait_seconds, bool silent) { | |
| #if defined(OS_ANDROID) | |
| // The pid from which we know which process to attach to are not output by | |
| // android ddms, so we have to print it out explicitly. | |
| DLOG(INFO) << "DebugUtil::WaitForDebugger(pid=" << static_cast<int>(getpid()) | |
| << ")"; | |
| #endif | |
| for (int i = 0; i < wait_seconds * 10; ++i) { | |
| if (BeingDebugged()) { | |
| if (!silent) | |
| BreakDebugger(); | |
| return true; | |
| } | |
| PlatformThread::Sleep(TimeDelta::FromMilliseconds(100)); | |
| } | |
| return false; | |
| } | |
| void SetSuppressDebugUI(bool suppress) { | |
| is_debug_ui_suppressed = suppress; | |
| } | |
| bool IsDebugUISuppressed() { | |
| return is_debug_ui_suppressed; | |
| } | |
| } // namespace debug | |
| } // namespace base |