summaryrefslogtreecommitdiffstats
path: root/chrome_elf/breakpad.h
blob: 8067708b6479eb179e75c78e89df915df08af626 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
// Copyright 2014 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 CHROME_ELF_BREAKPAD_H_
#define CHROME_ELF_BREAKPAD_H_

#include <windows.h>

namespace google_breakpad {
class ExceptionHandler;
}

// Initializes collection and upload of crash reports. This will only be done if
// the user has agreed to crash dump reporting.
//
// Crash reporting has to be initialized as early as possible (e.g., the first
// thing in main()) to catch crashes occuring during process startup.
// Crashes which occur during the global static construction phase will not
// be caught and reported. This should not be a problem as static non-POD
// objects are not allowed by the style guide and exceptions to this rule are
// rare.
void InitializeCrashReporting();

// Generates a crashdump for the provided |exinfo|. This crashdump will be
// either be saved locally, or uploaded, depending on how the ExceptionHandler
// has been configured.
int GenerateCrashDump(EXCEPTION_POINTERS* exinfo);

// Global pointer to the ExceptionHandler. This is initialized by
// InitializeCrashReporting() and used by GenerateCrashDump() to record dumps.
extern google_breakpad::ExceptionHandler* g_elf_breakpad;

#endif  // CHROME_ELF_BREAKPAD_H_