| // 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/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_ |