| OLD | NEW |
| 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 21 matching lines...) Expand all Loading... |
| 32 #if defined(OS_MACOSX) | 32 #if defined(OS_MACOSX) |
| 33 #include <AvailabilityMacros.h> | 33 #include <AvailabilityMacros.h> |
| 34 #endif | 34 #endif |
| 35 | 35 |
| 36 namespace crashpad { | 36 namespace crashpad { |
| 37 namespace { | 37 namespace { |
| 38 | 38 |
| 39 uint32_t TimevalToRoundedSeconds(const timeval& tv) { | 39 uint32_t TimevalToRoundedSeconds(const timeval& tv) { |
| 40 uint32_t seconds = | 40 uint32_t seconds = |
| 41 InRangeCast<uint32_t>(tv.tv_sec, std::numeric_limits<uint32_t>::max()); | 41 InRangeCast<uint32_t>(tv.tv_sec, std::numeric_limits<uint32_t>::max()); |
| 42 const int kMicrosecondsPerSecond = 1E6; | 42 const int kMicrosecondsPerSecond = static_cast<int>(1E6); |
| 43 if (tv.tv_usec >= kMicrosecondsPerSecond / 2 && | 43 if (tv.tv_usec >= kMicrosecondsPerSecond / 2 && |
| 44 seconds != std::numeric_limits<uint32_t>::max()) { | 44 seconds != std::numeric_limits<uint32_t>::max()) { |
| 45 ++seconds; | 45 ++seconds; |
| 46 } | 46 } |
| 47 return seconds; | 47 return seconds; |
| 48 } | 48 } |
| 49 | 49 |
| 50 // For MINIDUMP_MISC_INFO_4::BuildString. dbghelp only places OS version | 50 // For MINIDUMP_MISC_INFO_4::BuildString. dbghelp only places OS version |
| 51 // information here, but if a machine description is also available, this is the | 51 // information here, but if a machine description is also available, this is the |
| 52 // only reasonable place in a minidump file to put it. | 52 // only reasonable place in a minidump file to put it. |
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 94 // format, and add the OS that wrote the minidump along with any relevant | 94 // format, and add the OS that wrote the minidump along with any relevant |
| 95 // platform-specific data describing the compilation environment. | 95 // platform-specific data describing the compilation environment. |
| 96 std::string MinidumpMiscInfoDebugBuildString() { | 96 std::string MinidumpMiscInfoDebugBuildString() { |
| 97 // Caution: the minidump file format only has room for 39 UTF-16 code units | 97 // 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 | 98 // 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. | 99 // they will be truncated and a message will be logged. |
| 100 #if defined(OS_MACOSX) | 100 #if defined(OS_MACOSX) |
| 101 const char kOS[] = "mac"; | 101 const char kOS[] = "mac"; |
| 102 #elif defined(OS_LINUX) | 102 #elif defined(OS_LINUX) |
| 103 const char kOS[] = "linux"; | 103 const char kOS[] = "linux"; |
| 104 #elif defined(OS_WIN) |
| 105 const char kOS[] = "win"; |
| 104 #else | 106 #else |
| 105 #error define kOS for this operating system | 107 #error define kOS for this operating system |
| 106 #endif | 108 #endif |
| 107 | 109 |
| 108 #if defined(ARCH_CPU_X86) | 110 #if defined(ARCH_CPU_X86) |
| 109 const char kCPU[] = "i386"; | 111 const char kCPU[] = "i386"; |
| 110 #elif defined(ARCH_CPU_X86_64) | 112 #elif defined(ARCH_CPU_X86_64) |
| 111 const char kCPU[] = "amd64"; | 113 const char kCPU[] = "amd64"; |
| 112 #else | 114 #else |
| 113 #error define kCPU for this CPU | 115 #error define kCPU for this CPU |
| (...skipping 29 matching lines...) Expand all Loading... |
| 143 DCHECK_EQ(state(), kStateMutable); | 145 DCHECK_EQ(state(), kStateMutable); |
| 144 DCHECK_EQ(misc_info_.Flags1, 0u); | 146 DCHECK_EQ(misc_info_.Flags1, 0u); |
| 145 | 147 |
| 146 SetProcessID(InRangeCast<uint32_t>(process_snapshot->ProcessID(), 0)); | 148 SetProcessID(InRangeCast<uint32_t>(process_snapshot->ProcessID(), 0)); |
| 147 | 149 |
| 148 const SystemSnapshot* system_snapshot = process_snapshot->System(); | 150 const SystemSnapshot* system_snapshot = process_snapshot->System(); |
| 149 | 151 |
| 150 uint64_t current_mhz; | 152 uint64_t current_mhz; |
| 151 uint64_t max_mhz; | 153 uint64_t max_mhz; |
| 152 system_snapshot->CPUFrequency(¤t_mhz, &max_mhz); | 154 system_snapshot->CPUFrequency(¤t_mhz, &max_mhz); |
| 153 const uint32_t kHzPerMHz = 1E6; | 155 const uint32_t kHzPerMHz = static_cast<const uint32_t>(1E6); |
| 154 SetProcessorPowerInfo( | 156 SetProcessorPowerInfo( |
| 155 InRangeCast<uint32_t>(current_mhz / kHzPerMHz, | 157 InRangeCast<uint32_t>(current_mhz / kHzPerMHz, |
| 156 std::numeric_limits<uint32_t>::max()), | 158 std::numeric_limits<uint32_t>::max()), |
| 157 InRangeCast<uint32_t>(max_mhz / kHzPerMHz, | 159 InRangeCast<uint32_t>(max_mhz / kHzPerMHz, |
| 158 std::numeric_limits<uint32_t>::max()), | 160 std::numeric_limits<uint32_t>::max()), |
| 159 0, | 161 0, |
| 160 0, | 162 0, |
| 161 0); | 163 0); |
| 162 | 164 |
| 163 timeval start_time; | 165 timeval start_time; |
| (...skipping 194 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 358 MINIDUMP_MISC3_TIMEZONE | MINIDUMP_MISC3_PROTECTED_PROCESS)) { | 360 MINIDUMP_MISC3_TIMEZONE | MINIDUMP_MISC3_PROTECTED_PROCESS)) { |
| 359 return sizeof(MINIDUMP_MISC_INFO_3); | 361 return sizeof(MINIDUMP_MISC_INFO_3); |
| 360 } | 362 } |
| 361 if (misc_info_.Flags1 & MINIDUMP_MISC1_PROCESSOR_POWER_INFO) { | 363 if (misc_info_.Flags1 & MINIDUMP_MISC1_PROCESSOR_POWER_INFO) { |
| 362 return sizeof(MINIDUMP_MISC_INFO_2); | 364 return sizeof(MINIDUMP_MISC_INFO_2); |
| 363 } | 365 } |
| 364 return sizeof(MINIDUMP_MISC_INFO); | 366 return sizeof(MINIDUMP_MISC_INFO); |
| 365 } | 367 } |
| 366 | 368 |
| 367 } // namespace crashpad | 369 } // namespace crashpad |
| OLD | NEW |