Crashpad
Public Member Functions | Friends | List of all members
crashpad::internal::MemorySnapshotWin Class Referencefinal

A MemorySnapshot of a memory region in a process on the running system, when the system runs Windows. More...

#include "snapshot/win/memory_snapshot_win.h"

Inheritance diagram for crashpad::internal::MemorySnapshotWin:
crashpad::MemorySnapshot

Public Member Functions

void Initialize (ProcessReaderWin *process_reader, uint64_t address, uint64_t size)
 Initializes the object. More...
 
uint64_t Address () const override
 The base address of the memory snapshot in the snapshot process’ address space.
 
size_t Size () const override
 The size of the memory snapshot.
 
bool Read (Delegate *delegate) const override
 Calls Delegate::MemorySnapshotDelegateRead(), providing it with the memory snapshot’s data. More...
 
const MemorySnapshotMergeWithOtherSnapshot (const MemorySnapshot *other) const override
 Creates a new MemorySnapshot based on merging this one with other. More...
 

Friends

template<class T >
const MemorySnapshotMergeWithOtherSnapshotImpl (const T *self, const MemorySnapshot *other)
 A standard implementation of MemorySnapshot::MergeWithOtherSnapshot() for concrete MemorySnapshot implementations that use a process_reader_.
 

Detailed Description

A MemorySnapshot of a memory region in a process on the running system, when the system runs Windows.

Member Function Documentation

◆ Initialize()

void crashpad::internal::MemorySnapshotWin::Initialize ( ProcessReaderWin process_reader,
uint64_t  address,
uint64_t  size 
)

Initializes the object.

Memory is read lazily. No attempt is made to read the memory snapshot data until Read() is called, and the memory snapshot data is discared when Read() returns.

Parameters
[in]process_readerA reader for the process being snapshotted.
[in]addressThe base address of the memory region to snapshot, in the snapshot process' address space.
[in]sizeThe size of the memory region to snapshot.

◆ MergeWithOtherSnapshot()

const MemorySnapshot * crashpad::internal::MemorySnapshotWin::MergeWithOtherSnapshot ( const MemorySnapshot other) const
overridevirtual

Creates a new MemorySnapshot based on merging this one with other.

The ranges described by the two snapshots must either overlap or abut, and must be of the same concrete type.

Returns
A newly allocated MemorySnapshot representing the merged range, or nullptr with an error logged.

Implements crashpad::MemorySnapshot.

◆ Read()

bool crashpad::internal::MemorySnapshotWin::Read ( Delegate delegate) const
overridevirtual

Calls Delegate::MemorySnapshotDelegateRead(), providing it with the memory snapshot’s data.

Implementations do not necessarily read the memory snapshot data prior to this method being called. Memory snapshot data may be loaded lazily and may be discarded after being passed to the delegate. This provides clean memory management without burdening a snapshot implementation with the requirement that it track all memory region data simultaneously.

Returns
false on failure, otherwise, the return value of Delegate::MemorySnapshotDelegateRead(), which should be true on success and false on failure.

Implements crashpad::MemorySnapshot.


The documentation for this class was generated from the following files: