1// Copyright 2013 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#ifndef BASE_DEBUG_DUMP_WITHOUT_CRASHING_H_
6#define BASE_DEBUG_DUMP_WITHOUT_CRASHING_H_
7
8#include "base/base_export.h"
9#include "base/compiler_specific.h"
10#include "build/build_config.h"
11
12namespace base {
13
14namespace debug {
15
16// Handler to silently dump the current process without crashing.
17// Before calling this function, call SetDumpWithoutCrashingFunction to pass a
18// function pointer, typically chrome!DumpProcessWithoutCrash.  See example code
19// in chrome_main.cc that does this for chrome.dll.
20// Returns false if called before SetDumpWithoutCrashingFunction.
21BASE_EXPORT bool DumpWithoutCrashing();
22
23// Sets a function that'll be invoked to dump the current process when
24// DumpWithoutCrashing() is called.
25BASE_EXPORT void SetDumpWithoutCrashingFunction(void (CDECL *function)());
26
27}  // namespace debug
28
29}  // namespace base
30
31#endif  // BASE_DEBUG_DUMP_WITHOUT_CRASHING_H_
32