Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(256)

Side by Side Diff: components/crash/content/app/breakpad_linux.h

Issue 2694083004: Fix minidump-generation for debug builds. (Closed)
Patch Set: Add back leak-annotations. Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « chrome/common/crash_keys.cc ('k') | components/crash/content/app/breakpad_linux.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 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 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 // Public interface for enabling Breakpad on Linux systems. 5 // Public interface for enabling Breakpad on Linux systems.
6 6
7 #ifndef COMPONENTS_CRASH_CONTENT_APP_BREAKPAD_LINUX_H_ 7 #ifndef COMPONENTS_CRASH_CONTENT_APP_BREAKPAD_LINUX_H_
8 #define COMPONENTS_CRASH_CONTENT_APP_BREAKPAD_LINUX_H_ 8 #define COMPONENTS_CRASH_CONTENT_APP_BREAKPAD_LINUX_H_
9 9
10 #include <string> 10 #include <string>
11 11
12 #include "build/build_config.h" 12 #include "build/build_config.h"
13 13
14 namespace breakpad { 14 namespace breakpad {
15 15
16 // Turns on the crash reporter in any process. 16 // Turns on the crash reporter in any process.
17 extern void InitCrashReporter(const std::string& process_type); 17 extern void InitCrashReporter(const std::string& process_type);
18 18
19 #if defined(OS_ANDROID) 19 #if defined(OS_ANDROID)
20 struct SanitizationInfo {
21 bool should_sanitize_dumps = false;
22 bool skip_dump_if_principal_mapping_not_referenced = false;
23 uintptr_t address_within_principal_mapping = 0;
24 };
25
26 // Turns on the crash reporter in any process.
27 extern void InitCrashReporter(const std::string& process_type,
28 const SanitizationInfo& sanitization_info);
20 29
21 const char kWebViewSingleProcessType[] = "webview"; 30 const char kWebViewSingleProcessType[] = "webview";
22 const char kBrowserProcessType[] = "browser"; 31 const char kBrowserProcessType[] = "browser";
23 32
24 // Enables the crash reporter in child processes. 33 // Enables the crash reporter in child processes.
25 extern void InitNonBrowserCrashReporterForAndroid( 34 extern void InitNonBrowserCrashReporterForAndroid(
26 const std::string& process_type); 35 const std::string& process_type);
36 // Enables the crash reporter in child processes.
37 extern void InitNonBrowserCrashReporterForAndroid(
38 const std::string& process_type,
39 const SanitizationInfo& sanitization_info);
27 40
28 // Enables *micro*dump only. Can be called from any process. 41 // Enables *micro*dump only. Can be called from any process.
29 extern void InitMicrodumpCrashHandlerIfNecessary( 42 extern void InitMicrodumpCrashHandlerIfNecessary(
30 const std::string& process_type); 43 const std::string& process_type,
44 const SanitizationInfo& sanitization_info);
31 45
32 extern void AddGpuFingerprintToMicrodumpCrashHandler( 46 extern void AddGpuFingerprintToMicrodumpCrashHandler(
33 const std::string& gpu_fingerprint); 47 const std::string& gpu_fingerprint);
34 48
35 // Calling SuppressDumpGeneration causes subsequent crashes to not 49 // Calling SuppressDumpGeneration causes subsequent crashes to not
36 // generate dumps. Calling base::debug::DumpWithoutCrashing will still 50 // generate dumps. Calling base::debug::DumpWithoutCrashing will still
37 // generate a dump. 51 // generate a dump.
38 extern void SuppressDumpGeneration(); 52 extern void SuppressDumpGeneration();
39 53 #endif // defined(OS_ANDROID)
40 // Calling SetShouldSanitizeDumps determines whether or not subsequent
41 // crash dumps should be sanitized. Sanitized dumps still contain
42 // enough stack information to unwind crashes, but other stack data is
43 // erased.
44 extern void SetShouldSanitizeDumps(bool sanitize_dumps);
45
46 // Inform breakpad of an address within the text section that is
47 // considered interesting for the purpose of crashes so that this can
48 // be used to elide microdumps that do not reference interesting
49 // code. Minidumps will still be generated, but stacks from threads
50 // that do not reference the principal mapping will not be included.
51 // The full interesting address range is determined by looking up the
52 // memory mapping that contains |addr|.
53 extern void SetSkipDumpIfPrincipalMappingNotReferenced(
54 uintptr_t address_within_principal_mapping);
55 #endif
56 54
57 // Checks if crash reporting is enabled. Note that this is not the same as 55 // Checks if crash reporting is enabled. Note that this is not the same as
58 // being opted into metrics reporting (and crash reporting), which controls 56 // being opted into metrics reporting (and crash reporting), which controls
59 // whether InitCrashReporter() is called. 57 // whether InitCrashReporter() is called.
60 bool IsCrashReporterEnabled(); 58 bool IsCrashReporterEnabled();
61 59
62 // Generates a minidump on demand for this process, writing it to |dump_fd|. 60 // Generates a minidump on demand for this process, writing it to |dump_fd|.
63 void GenerateMinidumpOnDemandForAndroid(int dump_fd); 61 void GenerateMinidumpOnDemandForAndroid(int dump_fd);
64 } // namespace breakpad 62 } // namespace breakpad
65 63
66 #endif // COMPONENTS_CRASH_CONTENT_APP_BREAKPAD_LINUX_H_ 64 #endif // COMPONENTS_CRASH_CONTENT_APP_BREAKPAD_LINUX_H_
OLDNEW
« no previous file with comments | « chrome/common/crash_keys.cc ('k') | components/crash/content/app/breakpad_linux.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698