Index: util/win/process_info.h |
diff --git a/util/win/process_info.h b/util/win/process_info.h |
index 5af28bd762bddabcc62f2f8be5e7cb88150f7ff0..58b10135669dbfa47b8d837ac521390a292fef52 100644 |
--- a/util/win/process_info.h |
+++ b/util/win/process_info.h |
@@ -23,6 +23,7 @@ |
#include "base/basictypes.h" |
#include "util/misc/initialization_state_dcheck.h" |
+#include "util/numeric/checked_range.h" |
#include "util/win/address_types.h" |
namespace crashpad { |
@@ -52,6 +53,7 @@ class ProcessInfo { |
// \brief Contains information about a range of pages in the virtual address |
// space of a process. |
struct MemoryInfo { |
+ MemoryInfo(); |
Mark Mentovai
2015/10/01 17:38:59
We killed this in
https://codereview.chromium.org/
scottmg
2015/10/01 18:10:02
Done.
|
explicit MemoryInfo(const MEMORY_BASIC_INFORMATION& mbi); |
~MemoryInfo(); |
@@ -129,6 +131,16 @@ class ProcessInfo { |
//! \brief Retrieves information about all pages mapped into the process. |
const std::vector<MemoryInfo>& MemoryInformation() const; |
+ //! \brief Given a range to be read from the target process, returns a vector |
+ //! of ranges, representing the readable portions of the original range. |
+ //! |
+ //! \param[in] range The range being identified. |
+ //! |
+ //! \return A vector of ranges corresponding to the portion of the range |
+ //! identified by \a range that are readable, based on the memory map. |
+ std::vector<CheckedRange<WinVMAddress, WinVMSize>> GetReadableRanges( |
+ const CheckedRange<WinVMAddress, WinVMSize>& range) const; |
+ |
private: |
template <class Traits> |
friend bool GetProcessBasicInformation(HANDLE process, |
@@ -157,6 +169,18 @@ class ProcessInfo { |
DISALLOW_COPY_AND_ASSIGN(ProcessInfo); |
}; |
+//! \brief Given a memory map of a process, and a range to be read from the |
+//! target process, returns a vector of ranges, representing the readable |
+//! portions of the original range. |
+//! |
+//! This is a free function for testing, but prefer |
+//! ProcessInfo::GetReadableRanges(). |
+//! |
+//! \sa ProcessInfo::GetReadableRanges() |
Mark Mentovai
2015/10/01 17:38:59
I don’t think you need to say \sa when you just ga
scottmg
2015/10/01 18:10:02
Done.
|
+std::vector<CheckedRange<WinVMAddress, WinVMSize>> GetReadableRangesOfMemoryMap( |
+ const CheckedRange<WinVMAddress, WinVMSize>& range, |
+ const std::vector<ProcessInfo::MemoryInfo>& memory_info); |
+ |
} // namespace crashpad |
#endif // CRASHPAD_UTIL_WIN_PROCESS_INFO_H_ |