<ahref="#pub-methods">Public Member Functions</a>|
<ahref="#friends">Friends</a>|
<ahref="classcrashpad_1_1internal_1_1MemorySnapshotGeneric-members.html">List of all members</a></div>
<divclass="headertitle">
<divclass="title">crashpad::internal::MemorySnapshotGeneric< ProcessReaderType > Class Template Reference<spanclass="mlabels"><spanclass="mlabel">final</span></span></div></div>
</div><!--header-->
<divclass="contents">
<p>A <aclass="el"href="classcrashpad_1_1MemorySnapshot.html"title="An abstract interface to a snapshot representing a region of memory present in a snapshot process...">MemorySnapshot</a> of a memory region in a process on the running system. Used on Mac, Linux, Android, and Fuchsia, templated on the platform-specific ProcessReader type.
<areahref="classcrashpad_1_1MemorySnapshot.html"title="An abstract interface to a snapshot representing a region of memory present in a snapshot process..."alt="crashpad::MemorySnapshot"shape="rect"coords="0,0,401,24"/>
<trclass="memdesc:afc5da48f4bf866157d21dacd28f6c6db"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Initializes the object. <ahref="#afc5da48f4bf866157d21dacd28f6c6db">More...</a><br/></td></tr>
<trclass="memdesc:a8a1acc3cce99f31b12b31b910c18a767"><tdclass="mdescLeft"> </td><tdclass="mdescRight">The base address of the memory snapshot in the snapshot process’ address space. <br/></td></tr>
<trclass="memdesc:aef12c5e70cec062308baebab65590ce5"><tdclass="mdescLeft"> </td><tdclass="mdescRight">The size of the memory snapshot. <br/></td></tr>
<trclass="memdesc:ac18ac2120ee931e62f38bee1b4ea2bc9"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Calls <aclass="el"href="classcrashpad_1_1MemorySnapshot_1_1Delegate.html#a844f77076dc607ce0cd8946aea75f73b"title="Called by MemorySnapshot::Read() to provide data requested by a call to that method. ">Delegate::MemorySnapshotDelegateRead()</a>, providing it with the memory snapshot’s data. <ahref="#ac18ac2120ee931e62f38bee1b4ea2bc9">More...</a><br/></td></tr>
<trclass="memdesc:a568d3ed1b7a871d0d4535fbd586847a5"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Creates a new <aclass="el"href="classcrashpad_1_1MemorySnapshot.html"title="An abstract interface to a snapshot representing a region of memory present in a snapshot process...">MemorySnapshot</a> based on merging this one with <em>other</em>. <ahref="#a568d3ed1b7a871d0d4535fbd586847a5">More...</a><br/></td></tr>
<trclass="memitem:af94b14421912394b031a223199cd97ae"><tdclass="memTemplItemLeft"align="right"valign="top">const <aclass="el"href="classcrashpad_1_1MemorySnapshot.html">MemorySnapshot</a> * </td><tdclass="memTemplItemRight"valign="bottom"><aclass="el"href="classcrashpad_1_1internal_1_1MemorySnapshotGeneric.html#af94b14421912394b031a223199cd97ae">MergeWithOtherSnapshotImpl</a> (const T *self, const <aclass="el"href="classcrashpad_1_1MemorySnapshot.html">MemorySnapshot</a> *other)</td></tr>
<trclass="memdesc:af94b14421912394b031a223199cd97ae"><tdclass="mdescLeft"> </td><tdclass="mdescRight">A standard implementation of <aclass="el"href="classcrashpad_1_1MemorySnapshot.html#ac215c8c515725ac43f2bf5ec5d7a27a4"title="Creates a new MemorySnapshot based on merging this one with other. ">MemorySnapshot::MergeWithOtherSnapshot()</a> for concrete <aclass="el"href="classcrashpad_1_1MemorySnapshot.html"title="An abstract interface to a snapshot representing a region of memory present in a snapshot process...">MemorySnapshot</a> implementations that use a <code>process_reader_</code>. <br/></td></tr>
class crashpad::internal::MemorySnapshotGeneric< ProcessReaderType ></h3>
<p>A <aclass="el"href="classcrashpad_1_1MemorySnapshot.html"title="An abstract interface to a snapshot representing a region of memory present in a snapshot process...">MemorySnapshot</a> of a memory region in a process on the running system. Used on Mac, Linux, Android, and Fuchsia, templated on the platform-specific ProcessReader type. </p>
</div><h2class="groupheader">Member Function Documentation</h2>
<p>Memory is read lazily. No attempt is made to read the memory snapshot data until <aclass="el"href="classcrashpad_1_1internal_1_1MemorySnapshotGeneric.html#ac18ac2120ee931e62f38bee1b4ea2bc9"title="Calls Delegate::MemorySnapshotDelegateRead(), providing it with the memory snapshot’s data...">Read()</a> is called, and the memory snapshot data is discared when <aclass="el"href="classcrashpad_1_1internal_1_1MemorySnapshotGeneric.html#ac18ac2120ee931e62f38bee1b4ea2bc9"title="Calls Delegate::MemorySnapshotDelegateRead(), providing it with the memory snapshot’s data...">Read()</a> returns.</p>
<dlclass="params"><dt>Parameters</dt><dd>
<tableclass="params">
<tr><tdclass="paramdir">[in]</td><tdclass="paramname">process_reader</td><td>A reader for the process being snapshotted. </td></tr>
<tr><tdclass="paramdir">[in]</td><tdclass="paramname">address</td><td>The base address of the memory region to snapshot, in the snapshot process’ address space. </td></tr>
<tr><tdclass="paramdir">[in]</td><tdclass="paramname">size</td><td>The size of the memory region to snapshot. </td></tr>
<p>Creates a new <aclass="el"href="classcrashpad_1_1MemorySnapshot.html"title="An abstract interface to a snapshot representing a region of memory present in a snapshot process...">MemorySnapshot</a> based on merging this one with <em>other</em>. </p>
<p>The ranges described by the two snapshots must either overlap or abut, and must be of the same concrete type.</p>
<dlclass="section return"><dt>Returns</dt><dd>A newly allocated <aclass="el"href="classcrashpad_1_1MemorySnapshot.html"title="An abstract interface to a snapshot representing a region of memory present in a snapshot process...">MemorySnapshot</a> representing the merged range, or <code>nullptr</code> with an error logged. </dd></dl>
<p>Calls <aclass="el"href="classcrashpad_1_1MemorySnapshot_1_1Delegate.html#a844f77076dc607ce0cd8946aea75f73b"title="Called by MemorySnapshot::Read() to provide data requested by a call to that method. ">Delegate::MemorySnapshotDelegateRead()</a>, providing it with the memory snapshot’s data. </p>
<p>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.</p>
<dlclass="section return"><dt>Returns</dt><dd><code>false</code> on failure, otherwise, the return value of <aclass="el"href="classcrashpad_1_1MemorySnapshot_1_1Delegate.html#a844f77076dc607ce0cd8946aea75f73b"title="Called by MemorySnapshot::Read() to provide data requested by a call to that method. ">Delegate::MemorySnapshotDelegateRead()</a>, which should be <code>true</code> on success and <code>false</code> on failure. </dd></dl>