OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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 #include "components/crash/content/app/crashpad.h" | 5 #include "components/crash/content/app/crashpad.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 #include <string.h> | 8 #include <string.h> |
9 | 9 |
10 #if BUILDFLAG(ENABLE_KASKO) | 10 #if BUILDFLAG(ENABLE_KASKO) |
(...skipping 210 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
221 // time to chew on symbols. | 221 // time to chew on symbols. |
222 if (!browser_process || is_debug_build) { | 222 if (!browser_process || is_debug_build) { |
223 crashpad_info->set_system_crash_reporter_forwarding( | 223 crashpad_info->set_system_crash_reporter_forwarding( |
224 crashpad::TriState::kDisabled); | 224 crashpad::TriState::kDisabled); |
225 } | 225 } |
226 #endif // OS_MACOSX | 226 #endif // OS_MACOSX |
227 | 227 |
228 g_simple_string_dictionary = new crashpad::SimpleStringDictionary(); | 228 g_simple_string_dictionary = new crashpad::SimpleStringDictionary(); |
229 crashpad_info->set_simple_annotations(g_simple_string_dictionary); | 229 crashpad_info->set_simple_annotations(g_simple_string_dictionary); |
230 | 230 |
231 #if !defined(OS_WIN) || !defined(COMPONENT_BUILD) | 231 // On Windows chrome_elf registers crash keys. This should work identically |
232 // chrome/common/child_process_logging_win.cc registers crash keys for | 232 // for component and non component builds. |
233 // chrome.dll. In a component build, that is sufficient as chrome.dll and | |
234 // chrome.exe share a copy of base (in base.dll). In a static build, the EXE | |
235 // must separately initialize the crash keys configuration as it has its own | |
236 // statically linked copy of base. | |
237 base::debug::SetCrashKeyReportingFunctions(SetCrashKeyValue, ClearCrashKey); | 233 base::debug::SetCrashKeyReportingFunctions(SetCrashKeyValue, ClearCrashKey); |
238 crash_reporter_client->RegisterCrashKeys(); | 234 crash_reporter_client->RegisterCrashKeys(); |
239 #endif | |
240 | 235 |
241 SetCrashKeyValue("ptype", browser_process ? base::StringPiece("browser") | 236 SetCrashKeyValue("ptype", browser_process ? base::StringPiece("browser") |
242 : base::StringPiece(process_type)); | 237 : base::StringPiece(process_type)); |
243 #if defined(OS_POSIX) | 238 #if defined(OS_POSIX) |
244 SetCrashKeyValue("pid", base::IntToString(getpid())); | 239 SetCrashKeyValue("pid", base::IntToString(getpid())); |
245 #elif defined(OS_WIN) | 240 #elif defined(OS_WIN) |
246 SetCrashKeyValue("pid", base::IntToString(::GetCurrentProcessId())); | 241 SetCrashKeyValue("pid", base::IntToString(::GetCurrentProcessId())); |
247 #endif | 242 #endif |
248 | 243 |
249 logging::SetLogMessageHandler(LogMessageHandler); | 244 logging::SetLogMessageHandler(LogMessageHandler); |
(...skipping 225 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
475 base::UTF16ToUTF8(value)); | 470 base::UTF16ToUTF8(value)); |
476 } | 471 } |
477 | 472 |
478 void __declspec(dllexport) __cdecl ClearCrashKeyValueImpl(const wchar_t* key) { | 473 void __declspec(dllexport) __cdecl ClearCrashKeyValueImpl(const wchar_t* key) { |
479 crash_reporter::ClearCrashKey(base::UTF16ToUTF8(key)); | 474 crash_reporter::ClearCrashKey(base::UTF16ToUTF8(key)); |
480 } | 475 } |
481 | 476 |
482 } // extern "C" | 477 } // extern "C" |
483 | 478 |
484 #endif // OS_WIN | 479 #endif // OS_WIN |
OLD | NEW |