| 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 582 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 593 INITIALIZATION_STATE_DCHECK_VALID(initialized_); | 593 INITIALIZATION_STATE_DCHECK_VALID(initialized_); |
| 594 return memory_info_; | 594 return memory_info_; |
| 595 } | 595 } |
| 596 | 596 |
| 597 std::vector<CheckedRange<WinVMAddress, WinVMSize>> | 597 std::vector<CheckedRange<WinVMAddress, WinVMSize>> |
| 598 ProcessInfo::GetReadableRanges( | 598 ProcessInfo::GetReadableRanges( |
| 599 const CheckedRange<WinVMAddress, WinVMSize>& range) const { | 599 const CheckedRange<WinVMAddress, WinVMSize>& range) const { |
| 600 return GetReadableRangesOfMemoryMap(range, MemoryInfo()); | 600 return GetReadableRangesOfMemoryMap(range, MemoryInfo()); |
| 601 } | 601 } |
| 602 | 602 |
| 603 bool ProcessInfo::LoggingRangeIsFullyReadable( |
| 604 const CheckedRange<WinVMAddress, WinVMSize>& range) const { |
| 605 const auto ranges = GetReadableRanges(range); |
| 606 if (ranges.size() != 1) { |
| 607 LOG(ERROR) << base::StringPrintf( |
| 608 "range at 0x%llx, size 0x%llx fully unreadable", |
| 609 range.base(), |
| 610 range.size()); |
| 611 return false; |
| 612 } |
| 613 if (ranges[0].base() != range.base() || ranges[0].size() != range.size()) { |
| 614 LOG(ERROR) << base::StringPrintf( |
| 615 "some of range at 0x%llx, size 0x%llx unreadable", |
| 616 range.base(), |
| 617 range.size()); |
| 618 return false; |
| 619 } |
| 620 return true; |
| 621 } |
| 622 |
| 603 const std::vector<ProcessInfo::Handle>& ProcessInfo::Handles() const { | 623 const std::vector<ProcessInfo::Handle>& ProcessInfo::Handles() const { |
| 604 INITIALIZATION_STATE_DCHECK_VALID(initialized_); | 624 INITIALIZATION_STATE_DCHECK_VALID(initialized_); |
| 605 if (handles_.empty()) | 625 if (handles_.empty()) |
| 606 handles_ = BuildHandleVector(process_); | 626 handles_ = BuildHandleVector(process_); |
| 607 return handles_; | 627 return handles_; |
| 608 } | 628 } |
| 609 | 629 |
| 610 std::vector<CheckedRange<WinVMAddress, WinVMSize>> GetReadableRangesOfMemoryMap( | 630 std::vector<CheckedRange<WinVMAddress, WinVMSize>> GetReadableRangesOfMemoryMap( |
| 611 const CheckedRange<WinVMAddress, WinVMSize>& range, | 631 const CheckedRange<WinVMAddress, WinVMSize>& range, |
| 612 const std::vector<MEMORY_BASIC_INFORMATION64>& memory_info) { | 632 const std::vector<MEMORY_BASIC_INFORMATION64>& memory_info) { |
| (...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 663 } else { | 683 } else { |
| 664 result.push_back(as_ranges[i]); | 684 result.push_back(as_ranges[i]); |
| 665 } | 685 } |
| 666 DCHECK(result.back().IsValid()); | 686 DCHECK(result.back().IsValid()); |
| 667 } | 687 } |
| 668 | 688 |
| 669 return result; | 689 return result; |
| 670 } | 690 } |
| 671 | 691 |
| 672 } // namespace crashpad | 692 } // namespace crashpad |
| OLD | NEW |