OLD | NEW |
1 // Copyright 2015 The Crashpad Authors. All rights reserved. | 1 // Copyright 2015 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 173 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
184 if (!CheckedReadMemory(Address() + debug_directory.AddressOfRawData, | 184 if (!CheckedReadMemory(Address() + debug_directory.AddressOfRawData, |
185 debug_directory.SizeOfData, | 185 debug_directory.SizeOfData, |
186 data.get())) { | 186 data.get())) { |
187 LOG(WARNING) << "could not read debug directory"; | 187 LOG(WARNING) << "could not read debug directory"; |
188 return false; | 188 return false; |
189 } | 189 } |
190 | 190 |
191 if (*reinterpret_cast<DWORD*>(data.get()) != | 191 if (*reinterpret_cast<DWORD*>(data.get()) != |
192 CodeViewRecordPDB70::kSignature) { | 192 CodeViewRecordPDB70::kSignature) { |
193 // TODO(scottmg): Consider supporting other record types, see | 193 // TODO(scottmg): Consider supporting other record types, see |
194 // https://code.google.com/p/crashpad/issues/detail?id=47. | 194 // https://crashpad.chromium.org/bug/47. |
195 LOG(WARNING) << "encountered non-7.0 CodeView debug record"; | 195 LOG(WARNING) << "encountered non-7.0 CodeView debug record"; |
196 continue; | 196 continue; |
197 } | 197 } |
198 | 198 |
199 CodeViewRecordPDB70* codeview = | 199 CodeViewRecordPDB70* codeview = |
200 reinterpret_cast<CodeViewRecordPDB70*>(data.get()); | 200 reinterpret_cast<CodeViewRecordPDB70*>(data.get()); |
201 *uuid = codeview->uuid; | 201 *uuid = codeview->uuid; |
202 *age = codeview->age; | 202 *age = codeview->age; |
203 // This is a NUL-terminated string encoded in the codepage of the system | 203 // This is a NUL-terminated string encoded in the codepage of the system |
204 // where the binary was linked. We have no idea what that was, so we just | 204 // where the binary was linked. We have no idea what that was, so we just |
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
295 // Explicit instantiations with the only 2 valid template arguments to avoid | 295 // Explicit instantiations with the only 2 valid template arguments to avoid |
296 // putting the body of the function in the header. | 296 // putting the body of the function in the header. |
297 template bool PEImageReader::GetCrashpadInfo<process_types::internal::Traits32>( | 297 template bool PEImageReader::GetCrashpadInfo<process_types::internal::Traits32>( |
298 process_types::CrashpadInfo<process_types::internal::Traits32>* | 298 process_types::CrashpadInfo<process_types::internal::Traits32>* |
299 crashpad_info) const; | 299 crashpad_info) const; |
300 template bool PEImageReader::GetCrashpadInfo<process_types::internal::Traits64>( | 300 template bool PEImageReader::GetCrashpadInfo<process_types::internal::Traits64>( |
301 process_types::CrashpadInfo<process_types::internal::Traits64>* | 301 process_types::CrashpadInfo<process_types::internal::Traits64>* |
302 crashpad_info) const; | 302 crashpad_info) const; |
303 | 303 |
304 } // namespace crashpad | 304 } // namespace crashpad |
OLD | NEW |