debugger.cc revision 513209b27ff55e2841eac0e4120199c23acce758
1513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch// Copyright (c) 2010 The Chromium Authors. All rights reserved.
2513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch// Use of this source code is governed by a BSD-style license that can be
3513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch// found in the LICENSE file.
4513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch
5513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch#include "base/debug/debugger.h"
6513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch
7513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch#include "base/platform_thread.h"
8513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch
9513209b27ff55e2841eac0e4120199c23acce758Ben Murdochnamespace base {
10513209b27ff55e2841eac0e4120199c23acce758Ben Murdochnamespace debug {
11513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch
12513209b27ff55e2841eac0e4120199c23acce758Ben Murdochbool WaitForDebugger(int wait_seconds, bool silent) {
13513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch  for (int i = 0; i < wait_seconds * 10; ++i) {
14513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch    if (BeingDebugged()) {
15513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch      if (!silent)
16513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch        BreakDebugger();
17513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch      return true;
18513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch    }
19513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch    PlatformThread::Sleep(100);
20513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch  }
21513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch  return false;
22513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch}
23513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch
24513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch}  // namespace debug
25513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch}  // namespace base
26