| Index: util/win/process_info.cc | 
| diff --git a/util/win/process_info.cc b/util/win/process_info.cc | 
| index 64fb79b04d2243801aedcfdd7b446d34337911e7..ff8689ed5300f48ad122ab5af8b42574f34cd854 100644 | 
| --- a/util/win/process_info.cc | 
| +++ b/util/win/process_info.cc | 
| @@ -110,7 +110,8 @@ template <class Traits> | 
| bool GetProcessBasicInformation(HANDLE process, | 
| bool is_wow64, | 
| ProcessInfo* process_info, | 
| -                                WinVMAddress* peb_address) { | 
| +                                WinVMAddress* peb_address, | 
| +                                WinVMSize* peb_size) { | 
| ULONG bytes_returned; | 
| process_types::PROCESS_BASIC_INFORMATION<Traits> process_basic_information; | 
| NTSTATUS status = | 
| @@ -143,6 +144,7 @@ bool GetProcessBasicInformation(HANDLE process, | 
| // The address of this is found by a second call to NtQueryInformationProcess. | 
| if (!is_wow64) { | 
| *peb_address = process_basic_information.PebBaseAddress; | 
| +    *peb_size = sizeof(process_types::PEB<Traits>); | 
| } else { | 
| ULONG_PTR wow64_peb_address; | 
| status = crashpad::NtQueryInformationProcess(process, | 
| @@ -159,6 +161,7 @@ bool GetProcessBasicInformation(HANDLE process, | 
| return false; | 
| } | 
| *peb_address = wow64_peb_address; | 
| +    *peb_size = sizeof(process_types::PEB<process_types::internal::Traits32>); | 
| } | 
|  | 
| return true; | 
| @@ -260,6 +263,8 @@ ProcessInfo::ProcessInfo() | 
| : process_id_(), | 
| inherited_from_process_id_(), | 
| command_line_(), | 
| +      peb_address_(0), | 
| +      peb_size_(0), | 
| modules_(), | 
| is_64_bit_(false), | 
| is_wow64_(false), | 
| @@ -293,13 +298,12 @@ bool ProcessInfo::Initialize(HANDLE process) { | 
| } | 
| #endif | 
|  | 
| -  WinVMAddress peb_address; | 
| #if ARCH_CPU_64_BITS | 
| bool result = GetProcessBasicInformation<process_types::internal::Traits64>( | 
| -      process, is_wow64_, this, &peb_address); | 
| +      process, is_wow64_, this, &peb_address_, &peb_size_); | 
| #else | 
| bool result = GetProcessBasicInformation<process_types::internal::Traits32>( | 
| -      process, false, this, &peb_address); | 
| +      process, false, this, &peb_address_, &peb_size_); | 
| #endif  // ARCH_CPU_64_BITS | 
|  | 
| if (!result) { | 
| @@ -308,9 +312,9 @@ bool ProcessInfo::Initialize(HANDLE process) { | 
| } | 
|  | 
| result = is_64_bit_ ? ReadProcessData<process_types::internal::Traits64>( | 
| -                                 process, peb_address, this) | 
| -                           : ReadProcessData<process_types::internal::Traits32>( | 
| -                                 process, peb_address, this); | 
| +                            process, peb_address_, this) | 
| +                      : ReadProcessData<process_types::internal::Traits32>( | 
| +                            process, peb_address_, this); | 
| if (!result) { | 
| LOG(ERROR) << "ReadProcessData failed"; | 
| return false; | 
| @@ -346,6 +350,11 @@ bool ProcessInfo::CommandLine(std::wstring* command_line) const { | 
| return true; | 
| } | 
|  | 
| +void ProcessInfo::Peb(WinVMAddress* peb_address, WinVMSize* peb_size) const { | 
| +  *peb_address = peb_address_; | 
| +  *peb_size = peb_size_; | 
| +} | 
| + | 
| bool ProcessInfo::Modules(std::vector<Module>* modules) const { | 
| INITIALIZATION_STATE_DCHECK_VALID(initialized_); | 
| *modules = modules_; | 
|  |