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

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

Issue 2694083004: Fix minidump-generation for debug builds. (Closed)
Patch Set: Remove some old setters. 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
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 struct SanitizationInfo {
Torne 2017/02/15 11:45:13 Can this go inside the OS_ANDROID block, or is it
gsennton 2017/02/15 17:26:42 Done.
20 bool should_sanitize_dumps;
21 bool skip_dump_if_principal_mapping_not_referenced;
22 uintptr_t address_within_principal_mapping;
23 };
24
19 #if defined(OS_ANDROID) 25 #if defined(OS_ANDROID)
26 extern void InitCrashReporter(const std::string& process_type,
27 const SanitizationInfo& sanitizationInfo);
20 28
21 const char kWebViewSingleProcessType[] = "webview"; 29 const char kWebViewSingleProcessType[] = "webview";
22 const char kBrowserProcessType[] = "browser"; 30 const char kBrowserProcessType[] = "browser";
23 31
24 // Enables the crash reporter in child processes. 32 // Enables the crash reporter in child processes.
25 extern void InitNonBrowserCrashReporterForAndroid( 33 extern void InitNonBrowserCrashReporterForAndroid(
26 const std::string& process_type); 34 const std::string& process_type);
35 // Enables the crash reporter in child processes.
36 extern void InitNonBrowserCrashReporterForAndroid(
37 const std::string& process_type,
38 const SanitizationInfo& sanitizationInfo);
27 39
28 // Enables *micro*dump only. Can be called from any process. 40 // Enables *micro*dump only. Can be called from any process.
29 extern void InitMicrodumpCrashHandlerIfNecessary( 41 extern void InitMicrodumpCrashHandlerIfNecessary(
30 const std::string& process_type); 42 const std::string& process_type,
43 const SanitizationInfo& sanitizationInfo);
31 44
32 extern void AddGpuFingerprintToMicrodumpCrashHandler( 45 extern void AddGpuFingerprintToMicrodumpCrashHandler(
33 const std::string& gpu_fingerprint); 46 const std::string& gpu_fingerprint);
34 47
35 // Calling SuppressDumpGeneration causes subsequent crashes to not 48 // Calling SuppressDumpGeneration causes subsequent crashes to not
36 // generate dumps. Calling base::debug::DumpWithoutCrashing will still 49 // generate dumps. Calling base::debug::DumpWithoutCrashing will still
37 // generate a dump. 50 // generate a dump.
38 extern void SuppressDumpGeneration(); 51 extern void SuppressDumpGeneration();
39
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 52 #endif
56 53
57 // Checks if crash reporting is enabled. Note that this is not the same as 54 // 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 55 // being opted into metrics reporting (and crash reporting), which controls
59 // whether InitCrashReporter() is called. 56 // whether InitCrashReporter() is called.
60 bool IsCrashReporterEnabled(); 57 bool IsCrashReporterEnabled();
61 58
62 // Generates a minidump on demand for this process, writing it to |dump_fd|. 59 // Generates a minidump on demand for this process, writing it to |dump_fd|.
63 void GenerateMinidumpOnDemandForAndroid(int dump_fd); 60 void GenerateMinidumpOnDemandForAndroid(int dump_fd);
64 } // namespace breakpad 61 } // namespace breakpad
65 62
66 #endif // COMPONENTS_CRASH_CONTENT_APP_BREAKPAD_LINUX_H_ 63 #endif // COMPONENTS_CRASH_CONTENT_APP_BREAKPAD_LINUX_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698