| Index: util/win/process_info.cc
|
| diff --git a/util/win/process_info.cc b/util/win/process_info.cc
|
| index cc10fbc57ca11f936b9e7d88b2769dcb586fce24..9df35e99cb809db2bc4c9187c995fa2fd550f097 100644
|
| --- a/util/win/process_info.cc
|
| +++ b/util/win/process_info.cc
|
| @@ -131,7 +131,6 @@ bool ReadProcessData(HANDLE process,
|
| if (!ReadStruct(process, peb.Ldr, &peb_ldr_data))
|
| return false;
|
|
|
| - std::wstring module;
|
| process_types::LDR_DATA_TABLE_ENTRY<Traits> ldr_data_table_entry;
|
|
|
| // Include the first module in the memory order list to get our the main
|
| @@ -145,8 +144,14 @@ bool ReadProcessData(HANDLE process,
|
| &ldr_data_table_entry)) {
|
| return false;
|
| }
|
| - if (!ReadUnicodeString(process, ldr_data_table_entry.FullDllName, &module))
|
| + ProcessInfo::Module module;
|
| + if (!ReadUnicodeString(
|
| + process, ldr_data_table_entry.FullDllName, &module.name)) {
|
| return false;
|
| + }
|
| + module.dll_base = ldr_data_table_entry.DllBase;
|
| + module.size = ldr_data_table_entry.SizeOfImage;
|
| + module.timestamp = ldr_data_table_entry.TimeDateStamp;
|
| process_info->modules_.push_back(module);
|
|
|
| // Walk the PEB LDR structure (doubly-linked list) to get the list of loaded
|
| @@ -168,9 +173,14 @@ bool ReadProcessData(HANDLE process,
|
| &ldr_data_table_entry)) {
|
| break;
|
| }
|
| - // TODO(scottmg): Capture TimeDateStamp, Checksum, etc. too?
|
| - if (!ReadUnicodeString(process, ldr_data_table_entry.FullDllName, &module))
|
| + // TODO(scottmg): Capture Checksum, etc. too?
|
| + if (!ReadUnicodeString(
|
| + process, ldr_data_table_entry.FullDllName, &module.name)) {
|
| break;
|
| + }
|
| + module.dll_base = ldr_data_table_entry.DllBase;
|
| + module.size = ldr_data_table_entry.SizeOfImage;
|
| + module.timestamp = ldr_data_table_entry.TimeDateStamp;
|
| process_info->modules_.push_back(module);
|
| if (cur == last)
|
| break;
|
| @@ -179,6 +189,12 @@ bool ReadProcessData(HANDLE process,
|
| return true;
|
| }
|
|
|
| +ProcessInfo::Module::Module() : name(), dll_base(0), size(0), timestamp() {
|
| +}
|
| +
|
| +ProcessInfo::Module::~Module() {
|
| +}
|
| +
|
| ProcessInfo::ProcessInfo()
|
| : process_id_(),
|
| inherited_from_process_id_(),
|
| @@ -309,7 +325,7 @@ bool ProcessInfo::CommandLine(std::wstring* command_line) const {
|
| return true;
|
| }
|
|
|
| -bool ProcessInfo::Modules(std::vector<std::wstring>* modules) const {
|
| +bool ProcessInfo::Modules(std::vector<Module>* modules) const {
|
| INITIALIZATION_STATE_DCHECK_VALID(initialized_);
|
| *modules = modules_;
|
| return true;
|
|
|