|  | // Copyright (c) 2010 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 <stdlib.h> | 
|  | #include <windows.h> | 
|  |  | 
|  | #include "base/test/clang_coverage.h" | 
|  | #include "starboard/types.h" | 
|  |  | 
|  | namespace base { | 
|  | namespace debug { | 
|  |  | 
|  | bool BeingDebugged() { | 
|  | return ::IsDebuggerPresent() != 0; | 
|  | } | 
|  |  | 
|  | void BreakDebugger() { | 
|  | #if defined(CLANG_COVERAGE) | 
|  | WriteClangCoverageProfile(); | 
|  | #endif | 
|  |  | 
|  | if (IsDebugUISuppressed()) | 
|  | _exit(1); | 
|  |  | 
|  | __debugbreak(); | 
|  | } | 
|  |  | 
|  | }  // namespace debug | 
|  | }  // namespace base |