|  | // Copyright 2013 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. | 
|  |  | 
|  | #ifndef BASE_DEBUG_DUMP_WITHOUT_CRASHING_H_ | 
|  | #define BASE_DEBUG_DUMP_WITHOUT_CRASHING_H_ | 
|  |  | 
|  | #include "base/base_export.h" | 
|  | #include "base/compiler_specific.h" | 
|  | #include "build_config.h" | 
|  |  | 
|  | namespace base { | 
|  |  | 
|  | namespace debug { | 
|  |  | 
|  | // Handler to silently dump the current process without crashing. | 
|  | // Before calling this function, call SetDumpWithoutCrashingFunction to pass a | 
|  | // function pointer. | 
|  | // Windows: | 
|  | // This must be done for each instance of base (i.e. module) and is normally | 
|  | // chrome_elf!DumpProcessWithoutCrash. See example code in chrome_main.cc that | 
|  | // does this for chrome.dll and chrome_child.dll. Note: Crashpad sets this up | 
|  | // for main chrome.exe as part of calling crash_reporter::InitializeCrashpad. | 
|  | // Mac/Linux: | 
|  | // Crashpad does this as part of crash_reporter::InitializeCrashpad. | 
|  | // Returns false if called before SetDumpWithoutCrashingFunction. | 
|  | BASE_EXPORT bool DumpWithoutCrashing(); | 
|  |  | 
|  | // Sets a function that'll be invoked to dump the current process when | 
|  | // DumpWithoutCrashing() is called. | 
|  | BASE_EXPORT void SetDumpWithoutCrashingFunction(void (CDECL *function)()); | 
|  |  | 
|  | }  // namespace debug | 
|  |  | 
|  | }  // namespace base | 
|  |  | 
|  | #endif  // BASE_DEBUG_DUMP_WITHOUT_CRASHING_H_ |