<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.18"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Crashpad: crashpad::internal::MemorySnapshotMinidump Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="crashpad_doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">Crashpad
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.18 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="namespacecrashpad.html">crashpad</a></li><li class="navelem"><a class="el" href="namespacecrashpad_1_1internal.html">internal</a></li><li class="navelem"><a class="el" href="classcrashpad_1_1internal_1_1MemorySnapshotMinidump.html">MemorySnapshotMinidump</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="classcrashpad_1_1internal_1_1MemorySnapshotMinidump-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">crashpad::internal::MemorySnapshotMinidump Class Reference</div>  </div>
</div><!--header-->
<div class="contents">
<div class="dynheader">
Inheritance diagram for crashpad::internal::MemorySnapshotMinidump:</div>
<div class="dyncontent">
 <div class="center">
  <img src="classcrashpad_1_1internal_1_1MemorySnapshotMinidump.png" usemap="#crashpad::internal::MemorySnapshotMinidump_map" alt=""/>
  <map id="crashpad::internal::MemorySnapshotMinidump_map" name="crashpad::internal::MemorySnapshotMinidump_map">
<area href="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,271,24"/>
  </map>
</div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:ae8e3d080555d19f57dfce6b4bf3ee3d0"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1internal_1_1MemorySnapshotMinidump.html#ae8e3d080555d19f57dfce6b4bf3ee3d0">Initialize</a> (<a class="el" href="classcrashpad_1_1FileReaderInterface.html">FileReaderInterface</a> *file_reader, <a class="el" href="dbghelp_8h.html#acf465a1a77ecf067a9d946583bc6a3f8">RVA</a> location)</td></tr>
<tr class="memdesc:ae8e3d080555d19f57dfce6b4bf3ee3d0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes the object.  <a href="classcrashpad_1_1internal_1_1MemorySnapshotMinidump.html#ae8e3d080555d19f57dfce6b4bf3ee3d0">More...</a><br /></td></tr>
<tr class="separator:ae8e3d080555d19f57dfce6b4bf3ee3d0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaebb4139dbce56f63700486dc1f744ca"><td class="memItemLeft" align="right" valign="top"><a id="aaebb4139dbce56f63700486dc1f744ca"></a>
uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1internal_1_1MemorySnapshotMinidump.html#aaebb4139dbce56f63700486dc1f744ca">Address</a> () const override</td></tr>
<tr class="memdesc:aaebb4139dbce56f63700486dc1f744ca"><td class="mdescLeft">&#160;</td><td class="mdescRight">The base address of the memory snapshot in the snapshot process’ address space. <br /></td></tr>
<tr class="separator:aaebb4139dbce56f63700486dc1f744ca"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac1cf4e3338544fcc5f1d1f656a9bdcc9"><td class="memItemLeft" align="right" valign="top"><a id="ac1cf4e3338544fcc5f1d1f656a9bdcc9"></a>
size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1internal_1_1MemorySnapshotMinidump.html#ac1cf4e3338544fcc5f1d1f656a9bdcc9">Size</a> () const override</td></tr>
<tr class="memdesc:ac1cf4e3338544fcc5f1d1f656a9bdcc9"><td class="mdescLeft">&#160;</td><td class="mdescRight">The size of the memory snapshot. <br /></td></tr>
<tr class="separator:ac1cf4e3338544fcc5f1d1f656a9bdcc9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2d3157397de27e71b0d2af67642d4e13"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1internal_1_1MemorySnapshotMinidump.html#a2d3157397de27e71b0d2af67642d4e13">Read</a> (<a class="el" href="classcrashpad_1_1MemorySnapshot_1_1Delegate.html">Delegate</a> *delegate) const override</td></tr>
<tr class="memdesc:a2d3157397de27e71b0d2af67642d4e13"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calls <a class="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.  <a href="classcrashpad_1_1internal_1_1MemorySnapshotMinidump.html#a2d3157397de27e71b0d2af67642d4e13">More...</a><br /></td></tr>
<tr class="separator:a2d3157397de27e71b0d2af67642d4e13"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5335f28519da45b5865517cd38b6a28e"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classcrashpad_1_1MemorySnapshot.html">MemorySnapshot</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1internal_1_1MemorySnapshotMinidump.html#a5335f28519da45b5865517cd38b6a28e">MergeWithOtherSnapshot</a> (const <a class="el" href="classcrashpad_1_1MemorySnapshot.html">MemorySnapshot</a> *other) const override</td></tr>
<tr class="memdesc:a5335f28519da45b5865517cd38b6a28e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a new <a class="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>.  <a href="classcrashpad_1_1internal_1_1MemorySnapshotMinidump.html#a5335f28519da45b5865517cd38b6a28e">More...</a><br /></td></tr>
<tr class="separator:a5335f28519da45b5865517cd38b6a28e"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="ae8e3d080555d19f57dfce6b4bf3ee3d0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae8e3d080555d19f57dfce6b4bf3ee3d0">&#9670;&nbsp;</a></span>Initialize()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool crashpad::internal::MemorySnapshotMinidump::Initialize </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classcrashpad_1_1FileReaderInterface.html">FileReaderInterface</a> *&#160;</td>
          <td class="paramname"><em>file_reader</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="dbghelp_8h.html#acf465a1a77ecf067a9d946583bc6a3f8">RVA</a>&#160;</td>
          <td class="paramname"><em>location</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Initializes the object. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">file_reader</td><td>A file reader corresponding to a minidump file. The file reader must support seeking. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">location</td><td>The location within the file where we will find a <a class="el" href="structMINIDUMP__MEMORY__DESCRIPTOR.html" title="A pointer to a snapshot of a region of memory contained within a minidump file.">MINIDUMP_MEMORY_DESCRIPTOR</a> from which to initialize this object.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><code>true</code> if the snapshot could be created, <code>false</code> otherwise with an appropriate message logged. </dd></dl>

</div>
</div>
<a id="a5335f28519da45b5865517cd38b6a28e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5335f28519da45b5865517cd38b6a28e">&#9670;&nbsp;</a></span>MergeWithOtherSnapshot()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="classcrashpad_1_1MemorySnapshot.html">MemorySnapshot</a> * crashpad::internal::MemorySnapshotMinidump::MergeWithOtherSnapshot </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classcrashpad_1_1MemorySnapshot.html">MemorySnapshot</a> *&#160;</td>
          <td class="paramname"><em>other</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Creates a new <a class="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>
<dl class="section return"><dt>Returns</dt><dd>A newly allocated <a class="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>Implements <a class="el" href="classcrashpad_1_1MemorySnapshot.html#ac215c8c515725ac43f2bf5ec5d7a27a4">crashpad::MemorySnapshot</a>.</p>

</div>
</div>
<a id="a2d3157397de27e71b0d2af67642d4e13"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2d3157397de27e71b0d2af67642d4e13">&#9670;&nbsp;</a></span>Read()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool crashpad::internal::MemorySnapshotMinidump::Read </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classcrashpad_1_1MemorySnapshot_1_1Delegate.html">Delegate</a> *&#160;</td>
          <td class="paramname"><em>delegate</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Calls <a class="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>
<dl class="section return"><dt>Returns</dt><dd><code>false</code> on failure, otherwise, the return value of <a class="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>

<p>Implements <a class="el" href="classcrashpad_1_1MemorySnapshot.html#ad7bd3e85268e7b8d9d78e03be977ee52">crashpad::MemorySnapshot</a>.</p>

</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li>snapshot/minidump/memory_snapshot_minidump.h</li>
<li>snapshot/minidump/memory_snapshot_minidump.cc</li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.18
</small></address>
</body>
</html>
