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

Side by Side Diff: third_party/crashpad/crashpad/minidump/minidump_misc_info_writer.cc

Issue 2478633002: Update Crashpad to b47bf6c250c6b825dee1c5fbad9152c2c962e828 (Closed)
Patch Set: mac comment 2 Created 4 years, 1 month 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 2014 The Crashpad Authors. All rights reserved. 1 // Copyright 2014 The Crashpad Authors. All rights reserved.
2 // 2 //
3 // Licensed under the Apache License, Version 2.0 (the "License"); 3 // Licensed under the Apache License, Version 2.0 (the "License");
4 // you may not use this file except in compliance with the License. 4 // you may not use this file except in compliance with the License.
5 // You may obtain a copy of the License at 5 // You may obtain a copy of the License at
6 // 6 //
7 // http://www.apache.org/licenses/LICENSE-2.0 7 // http://www.apache.org/licenses/LICENSE-2.0
8 // 8 //
9 // Unless required by applicable law or agreed to in writing, software 9 // Unless required by applicable law or agreed to in writing, software
10 // distributed under the License is distributed on an "AS IS" BASIS, 10 // distributed under the License is distributed on an "AS IS" BASIS,
(...skipping 13 matching lines...) Expand all
24 #include "minidump/minidump_writer_util.h" 24 #include "minidump/minidump_writer_util.h"
25 #include "package.h" 25 #include "package.h"
26 #include "snapshot/process_snapshot.h" 26 #include "snapshot/process_snapshot.h"
27 #include "snapshot/system_snapshot.h" 27 #include "snapshot/system_snapshot.h"
28 #include "util/file/file_writer.h" 28 #include "util/file/file_writer.h"
29 #include "util/numeric/in_range_cast.h" 29 #include "util/numeric/in_range_cast.h"
30 #include "util/numeric/safe_assignment.h" 30 #include "util/numeric/safe_assignment.h"
31 31
32 #if defined(OS_MACOSX) 32 #if defined(OS_MACOSX)
33 #include <AvailabilityMacros.h> 33 #include <AvailabilityMacros.h>
34 #elif defined(OS_ANDROID)
35 #include <android/api-level.h>
34 #endif 36 #endif
35 37
36 namespace crashpad { 38 namespace crashpad {
37 namespace { 39 namespace {
38 40
39 uint32_t TimevalToRoundedSeconds(const timeval& tv) { 41 uint32_t TimevalToRoundedSeconds(const timeval& tv) {
40 uint32_t seconds = 42 uint32_t seconds =
41 InRangeCast<uint32_t>(tv.tv_sec, std::numeric_limits<uint32_t>::max()); 43 InRangeCast<uint32_t>(tv.tv_sec, std::numeric_limits<uint32_t>::max());
42 const int kMicrosecondsPerSecond = static_cast<int>(1E6); 44 const int kMicrosecondsPerSecond = static_cast<int>(1E6);
43 if (tv.tv_usec >= kMicrosecondsPerSecond / 2 && 45 if (tv.tv_usec >= kMicrosecondsPerSecond / 2 &&
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
92 // For MINIDUMP_MISC_INFO_4::DbgBldStr. dbghelp produces strings like 94 // For MINIDUMP_MISC_INFO_4::DbgBldStr. dbghelp produces strings like
93 // “dbghelp.i386,6.3.9600.16520” and “dbghelp.amd64,6.3.9600.16520”. Mimic that 95 // “dbghelp.i386,6.3.9600.16520” and “dbghelp.amd64,6.3.9600.16520”. Mimic that
94 // format, and add the OS that wrote the minidump along with any relevant 96 // format, and add the OS that wrote the minidump along with any relevant
95 // platform-specific data describing the compilation environment. 97 // platform-specific data describing the compilation environment.
96 std::string MinidumpMiscInfoDebugBuildString() { 98 std::string MinidumpMiscInfoDebugBuildString() {
97 // Caution: the minidump file format only has room for 39 UTF-16 code units 99 // Caution: the minidump file format only has room for 39 UTF-16 code units
98 // plus a UTF-16 NUL terminator. Don’t let strings get longer than this, or 100 // plus a UTF-16 NUL terminator. Don’t let strings get longer than this, or
99 // they will be truncated and a message will be logged. 101 // they will be truncated and a message will be logged.
100 #if defined(OS_MACOSX) 102 #if defined(OS_MACOSX)
101 const char kOS[] = "mac"; 103 const char kOS[] = "mac";
104 #elif defined(OS_ANDROID)
105 const char kOS[] = "android";
102 #elif defined(OS_LINUX) 106 #elif defined(OS_LINUX)
103 const char kOS[] = "linux"; 107 const char kOS[] = "linux";
104 #elif defined(OS_WIN) 108 #elif defined(OS_WIN)
105 const char kOS[] = "win"; 109 const char kOS[] = "win";
106 #else 110 #else
107 #error define kOS for this operating system 111 #error define kOS for this operating system
108 #endif 112 #endif
109 113
110 #if defined(ARCH_CPU_X86) 114 #if defined(ARCH_CPU_X86)
111 const char kCPU[] = "i386"; 115 const char kCPU[] = "i386";
112 #elif defined(ARCH_CPU_X86_64) 116 #elif defined(ARCH_CPU_X86_64)
113 const char kCPU[] = "amd64"; 117 const char kCPU[] = "amd64";
118 #elif defined(ARCH_CPU_ARMEL)
119 const char kCPU[] = "arm";
120 #elif defined(ARCH_CPU_ARM64)
121 const char kCPU[] = "arm64";
114 #else 122 #else
115 #error define kCPU for this CPU 123 #error define kCPU for this CPU
116 #endif 124 #endif
117 125
118 std::string debug_build_string = base::StringPrintf("%s.%s,%s,%s", 126 std::string debug_build_string = base::StringPrintf("%s.%s,%s,%s",
119 PACKAGE_TARNAME, 127 PACKAGE_TARNAME,
120 kCPU, 128 kCPU,
121 PACKAGE_VERSION, 129 PACKAGE_VERSION,
122 kOS); 130 kOS);
123 131
124 #if defined(OS_MACOSX) 132 #if defined(OS_MACOSX)
125 debug_build_string += base::StringPrintf( 133 debug_build_string += base::StringPrintf(
126 ",%d,%d", 134 ",%d,%d",
127 AvailabilityVersionToMacOSXMinorVersion(MAC_OS_X_VERSION_MIN_REQUIRED), 135 AvailabilityVersionToMacOSXMinorVersion(MAC_OS_X_VERSION_MIN_REQUIRED),
128 AvailabilityVersionToMacOSXMinorVersion(MAC_OS_X_VERSION_MAX_ALLOWED)); 136 AvailabilityVersionToMacOSXMinorVersion(MAC_OS_X_VERSION_MAX_ALLOWED));
137 #elif defined(OS_ANDROID)
138 debug_build_string += base::StringPrintf(",%d", __ANDROID_API__);
129 #endif 139 #endif
130 140
131 return debug_build_string; 141 return debug_build_string;
132 } 142 }
133 143
134 } // namespace internal 144 } // namespace internal
135 145
136 MinidumpMiscInfoWriter::MinidumpMiscInfoWriter() 146 MinidumpMiscInfoWriter::MinidumpMiscInfoWriter()
137 : MinidumpStreamWriter(), misc_info_() { 147 : MinidumpStreamWriter(), misc_info_() {
138 } 148 }
(...skipping 221 matching lines...) Expand 10 before | Expand all | Expand 10 after
360 MINIDUMP_MISC3_TIMEZONE | MINIDUMP_MISC3_PROTECTED_PROCESS)) { 370 MINIDUMP_MISC3_TIMEZONE | MINIDUMP_MISC3_PROTECTED_PROCESS)) {
361 return sizeof(MINIDUMP_MISC_INFO_3); 371 return sizeof(MINIDUMP_MISC_INFO_3);
362 } 372 }
363 if (misc_info_.Flags1 & MINIDUMP_MISC1_PROCESSOR_POWER_INFO) { 373 if (misc_info_.Flags1 & MINIDUMP_MISC1_PROCESSOR_POWER_INFO) {
364 return sizeof(MINIDUMP_MISC_INFO_2); 374 return sizeof(MINIDUMP_MISC_INFO_2);
365 } 375 }
366 return sizeof(MINIDUMP_MISC_INFO); 376 return sizeof(MINIDUMP_MISC_INFO);
367 } 377 }
368 378
369 } // namespace crashpad 379 } // namespace crashpad
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698