| Index: util/win/process_info.cc | 
| diff --git a/util/win/process_info.cc b/util/win/process_info.cc | 
| index 7f3ff286c1dd0e6cf4c209407707b563a5327076..1478d044a9fe2171da4b0c0565502b2224092874 100644 | 
| --- a/util/win/process_info.cc | 
| +++ b/util/win/process_info.cc | 
| @@ -600,6 +600,26 @@ ProcessInfo::GetReadableRanges( | 
| return GetReadableRangesOfMemoryMap(range, MemoryInfo()); | 
| } | 
|  | 
| +bool ProcessInfo::LoggingRangeIsFullyReadable( | 
| +    const CheckedRange<WinVMAddress, WinVMSize>& range) const { | 
| +  const auto ranges = GetReadableRanges(range); | 
| +  if (ranges.size() != 1) { | 
| +    LOG(ERROR) << base::StringPrintf( | 
| +        "range at 0x%llx, size 0x%llx fully unreadable", | 
| +        range.base(), | 
| +        range.size()); | 
| +    return false; | 
| +  } | 
| +  if (ranges[0].base() != range.base() || ranges[0].size() != range.size()) { | 
| +    LOG(ERROR) << base::StringPrintf( | 
| +        "some of range at 0x%llx, size 0x%llx unreadable", | 
| +        range.base(), | 
| +        range.size()); | 
| +    return false; | 
| +  } | 
| +  return true; | 
| +} | 
| + | 
| const std::vector<ProcessInfo::Handle>& ProcessInfo::Handles() const { | 
| INITIALIZATION_STATE_DCHECK_VALID(initialized_); | 
| if (handles_.empty()) | 
|  |