<!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::ProcessMemory 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="classcrashpad_1_1ProcessMemory.html">ProcessMemory</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#friends">Friends</a> &#124;
<a href="classcrashpad_1_1ProcessMemory-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">crashpad::ProcessMemory Class Reference<span class="mlabels"><span class="mlabel">abstract</span></span></div>  </div>
</div><!--header-->
<div class="contents">

<p>Abstract base class for accessing the memory of another process.  
 <a href="classcrashpad_1_1ProcessMemory.html#details">More...</a></p>

<p><code>#include &quot;util/process/process_memory.h&quot;</code></p>
<div class="dynheader">
Inheritance diagram for crashpad::ProcessMemory:</div>
<div class="dyncontent">
 <div class="center">
  <img src="classcrashpad_1_1ProcessMemory.png" usemap="#crashpad::ProcessMemory_map" alt=""/>
  <map id="crashpad::ProcessMemory_map" name="crashpad::ProcessMemory_map">
<area href="classcrashpad_1_1ProcessMemoryFuchsia.html" title="Accesses the memory of another Fuchsia process." alt="crashpad::ProcessMemoryFuchsia" shape="rect" coords="0,56,214,80"/>
<area href="classcrashpad_1_1ProcessMemoryLinux.html" title="Accesses the memory of another Linux process." alt="crashpad::ProcessMemoryLinux" shape="rect" coords="224,56,438,80"/>
<area href="classcrashpad_1_1ProcessMemoryMac.html" title="Accesses the memory of another Mach task." alt="crashpad::ProcessMemoryMac" shape="rect" coords="448,56,662,80"/>
<area href="classcrashpad_1_1ProcessMemorySanitized.html" title="Sanitized access to the memory of another process." alt="crashpad::ProcessMemorySanitized" shape="rect" coords="672,56,886,80"/>
<area href="classcrashpad_1_1ProcessMemoryWin.html" title="Accesses the memory of another Windows process." alt="crashpad::ProcessMemoryWin" shape="rect" coords="896,56,1110,80"/>
<area href="classFakeProcessMemory.html" alt="FakeProcessMemory" shape="rect" coords="1120,56,1334,80"/>
  </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:a728bc3afe29c3d5bf999c614d7fbf774"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1ProcessMemory.html#a728bc3afe29c3d5bf999c614d7fbf774">Read</a> (<a class="el" href="namespacecrashpad.html#af2d003bfc8632755c60ab27bd6d1c8ae">VMAddress</a> address, <a class="el" href="namespacecrashpad.html#a103690edebf604dcd23d5c03b78fe0be">VMSize</a> size, void *buffer) const</td></tr>
<tr class="memdesc:a728bc3afe29c3d5bf999c614d7fbf774"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copies memory from the target process into a caller-provided buffer in the current process.  <a href="classcrashpad_1_1ProcessMemory.html#a728bc3afe29c3d5bf999c614d7fbf774">More...</a><br /></td></tr>
<tr class="separator:a728bc3afe29c3d5bf999c614d7fbf774"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9f31b6f891e7a363b4d1c30d9d7fef2b"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1ProcessMemory.html#a9f31b6f891e7a363b4d1c30d9d7fef2b">ReadCString</a> (<a class="el" href="namespacecrashpad.html#af2d003bfc8632755c60ab27bd6d1c8ae">VMAddress</a> address, std::string *string) const</td></tr>
<tr class="memdesc:a9f31b6f891e7a363b4d1c30d9d7fef2b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads a <code>NUL</code>-terminated C string from the target process into a string in the current process.  <a href="classcrashpad_1_1ProcessMemory.html#a9f31b6f891e7a363b4d1c30d9d7fef2b">More...</a><br /></td></tr>
<tr class="separator:a9f31b6f891e7a363b4d1c30d9d7fef2b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3f7450b1e02bed80a9573338cd32d260"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1ProcessMemory.html#a3f7450b1e02bed80a9573338cd32d260">ReadCStringSizeLimited</a> (<a class="el" href="namespacecrashpad.html#af2d003bfc8632755c60ab27bd6d1c8ae">VMAddress</a> address, <a class="el" href="namespacecrashpad.html#a103690edebf604dcd23d5c03b78fe0be">VMSize</a> size, std::string *string) const</td></tr>
<tr class="memdesc:a3f7450b1e02bed80a9573338cd32d260"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads a <code>NUL</code>-terminated C string from the target process into a string in the current process.  <a href="classcrashpad_1_1ProcessMemory.html#a3f7450b1e02bed80a9573338cd32d260">More...</a><br /></td></tr>
<tr class="separator:a3f7450b1e02bed80a9573338cd32d260"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="friends"></a>
Friends</h2></td></tr>
<tr class="memitem:afedcc2b9b2d5b3a0a115d93053a8d09f"><td class="memItemLeft" align="right" valign="top"><a id="afedcc2b9b2d5b3a0a115d93053a8d09f"></a>
class&#160;</td><td class="memItemRight" valign="bottom"><b>ProcessMemorySanitized</b></td></tr>
<tr class="separator:afedcc2b9b2d5b3a0a115d93053a8d09f"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Abstract base class for accessing the memory of another process. </p>
<p>Implementations are platform-specific. </p>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a id="a728bc3afe29c3d5bf999c614d7fbf774"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a728bc3afe29c3d5bf999c614d7fbf774">&#9670;&nbsp;</a></span>Read()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool crashpad::ProcessMemory::Read </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="namespacecrashpad.html#af2d003bfc8632755c60ab27bd6d1c8ae">VMAddress</a>&#160;</td>
          <td class="paramname"><em>address</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespacecrashpad.html#a103690edebf604dcd23d5c03b78fe0be">VMSize</a>&#160;</td>
          <td class="paramname"><em>size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>buffer</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Copies memory from the target process into a caller-provided buffer in the current process. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">address</td><td>The address, in the target process' address space, of the memory region to copy. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">size</td><td>The size, in bytes, of the memory region to copy. <em>buffer</em> must be at least this size. </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">buffer</td><td>The buffer into which the contents of the other process' memory will be copied.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><code>true</code> on success, with <em>buffer</em> filled appropriately. <code>false</code> on failure, with a message logged. </dd></dl>

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

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool crashpad::ProcessMemory::ReadCString </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="namespacecrashpad.html#af2d003bfc8632755c60ab27bd6d1c8ae">VMAddress</a>&#160;</td>
          <td class="paramname"><em>address</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::string *&#160;</td>
          <td class="paramname"><em>string</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Reads a <code>NUL</code>-terminated C string from the target process into a string in the current process. </p>
<p>The length of the string need not be known ahead of time. This method will read contiguous memory until a <code>NUL</code> terminator is found.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">address</td><td>The address, in the target process’s address space, of the string to copy. </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">string</td><td>The string read from the other process.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><code>true</code> on success, with <em>string</em> set appropriately. <code>false</code> on failure, with a message logged. Failures can occur, for example, when encountering unmapped or unreadable pages. </dd></dl>

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

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool crashpad::ProcessMemory::ReadCStringSizeLimited </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="namespacecrashpad.html#af2d003bfc8632755c60ab27bd6d1c8ae">VMAddress</a>&#160;</td>
          <td class="paramname"><em>address</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespacecrashpad.html#a103690edebf604dcd23d5c03b78fe0be">VMSize</a>&#160;</td>
          <td class="paramname"><em>size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::string *&#160;</td>
          <td class="paramname"><em>string</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Reads a <code>NUL</code>-terminated C string from the target process into a string in the current process. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">address</td><td>The address, in the target process’s address space, of the string to copy. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">size</td><td>The maximum number of bytes to read. The string is required to be <code>NUL</code>-terminated within this many bytes. </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">string</td><td>The string read from the other process.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><code>true</code> on success, with <em>string</em> set appropriately. <code>false</code> on failure, with a message logged. Failures can occur, for example, when a <code>NUL</code> terminator is not found within <em>size</em> bytes, or when encountering unmapped or unreadable pages. </dd></dl>

</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li>util/process/process_memory.h</li>
<li>util/process/process_memory.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>
