crashpad/doc/generated/doxygen/classcrashpad_1_1ProcessSubrangeReader.html
2017-02-22 23:37:31 -05:00

271 lines
16 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://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.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Crashpad: crashpad::ProcessSubrangeReader 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.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
</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_1ProcessSubrangeReader.html">ProcessSubrangeReader</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_1ProcessSubrangeReader-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">crashpad::ProcessSubrangeReader Class Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>A wrapper for <a class="el" href="classcrashpad_1_1ProcessReaderWin.html" title="Accesses information about another process, identified by a HANDLE. ">ProcessReaderWin</a> that only allows a specific subrange to be read from.
<a href="classcrashpad_1_1ProcessSubrangeReader.html#details">More...</a></p>
<p><code>#include &quot;snapshot/win/process_subrange_reader.h&quot;</code></p>
<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:af553e32780f4661a07fdec8e4aafbbf3"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1ProcessSubrangeReader.html#af553e32780f4661a07fdec8e4aafbbf3">Initialize</a> (<a class="el" href="classcrashpad_1_1ProcessReaderWin.html">ProcessReaderWin</a> *process_reader, <a class="el" href="namespacecrashpad.html#a368af6d88f68998b5c5eb80b8f6ebb76">WinVMAddress</a> base, <a class="el" href="namespacecrashpad.html#a1bac9f2a189b24737e743d6690362239">WinVMSize</a> size, const std::string &amp;name)</td></tr>
<tr class="memdesc:af553e32780f4661a07fdec8e4aafbbf3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes the object. <a href="#af553e32780f4661a07fdec8e4aafbbf3">More...</a><br /></td></tr>
<tr class="separator:af553e32780f4661a07fdec8e4aafbbf3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9973cac80710c00a9ef625e5b151e75f"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1ProcessSubrangeReader.html#a9973cac80710c00a9ef625e5b151e75f">InitializeSubrange</a> (const <a class="el" href="classcrashpad_1_1ProcessSubrangeReader.html">ProcessSubrangeReader</a> &amp;that, <a class="el" href="namespacecrashpad.html#a368af6d88f68998b5c5eb80b8f6ebb76">WinVMAddress</a> base, <a class="el" href="namespacecrashpad.html#a1bac9f2a189b24737e743d6690362239">WinVMSize</a> size, const std::string &amp;sub_name)</td></tr>
<tr class="memdesc:a9973cac80710c00a9ef625e5b151e75f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes the object to a subrange of an existing <a class="el" href="classcrashpad_1_1ProcessSubrangeReader.html" title="A wrapper for ProcessReaderWin that only allows a specific subrange to be read from. ">ProcessSubrangeReader</a>. <a href="#a9973cac80710c00a9ef625e5b151e75f">More...</a><br /></td></tr>
<tr class="separator:a9973cac80710c00a9ef625e5b151e75f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a292349a7046f0f54772b0223aa8d914e"><td class="memItemLeft" align="right" valign="top"><a id="a292349a7046f0f54772b0223aa8d914e"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>Is64Bit</b> () const</td></tr>
<tr class="separator:a292349a7046f0f54772b0223aa8d914e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3e46ef329e1051cdd4be9d4e2a907071"><td class="memItemLeft" align="right" valign="top"><a id="a3e46ef329e1051cdd4be9d4e2a907071"></a>
<a class="el" href="namespacecrashpad.html#a368af6d88f68998b5c5eb80b8f6ebb76">WinVMAddress</a>&#160;</td><td class="memItemRight" valign="bottom"><b>Base</b> () const</td></tr>
<tr class="separator:a3e46ef329e1051cdd4be9d4e2a907071"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a194120e1bd5916a49ff971f7d28ace74"><td class="memItemLeft" align="right" valign="top"><a id="a194120e1bd5916a49ff971f7d28ace74"></a>
<a class="el" href="namespacecrashpad.html#a368af6d88f68998b5c5eb80b8f6ebb76">WinVMAddress</a>&#160;</td><td class="memItemRight" valign="bottom"><b>Size</b> () const</td></tr>
<tr class="separator:a194120e1bd5916a49ff971f7d28ace74"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6110102df36381e94e778defc9ce6205"><td class="memItemLeft" align="right" valign="top"><a id="a6110102df36381e94e778defc9ce6205"></a>
const std::string &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>name</b> () const</td></tr>
<tr class="separator:a6110102df36381e94e778defc9ce6205"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aff3db97a5a2160407c12aeca45b36544"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1ProcessSubrangeReader.html#aff3db97a5a2160407c12aeca45b36544">ReadMemory</a> (<a class="el" href="namespacecrashpad.html#a368af6d88f68998b5c5eb80b8f6ebb76">WinVMAddress</a> address, <a class="el" href="namespacecrashpad.html#a1bac9f2a189b24737e743d6690362239">WinVMSize</a> size, void *into) const</td></tr>
<tr class="memdesc:aff3db97a5a2160407c12aeca45b36544"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads memory from the remote process. <a href="#aff3db97a5a2160407c12aeca45b36544">More...</a><br /></td></tr>
<tr class="separator:aff3db97a5a2160407c12aeca45b36544"><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>A wrapper for <a class="el" href="classcrashpad_1_1ProcessReaderWin.html" title="Accesses information about another process, identified by a HANDLE. ">ProcessReaderWin</a> that only allows a specific subrange to be read from. </p>
<p>This class is useful to restrict reads to a specific address range, such as the address range occupied by a loaded module, or a specific section within a module. </p>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a id="af553e32780f4661a07fdec8e4aafbbf3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af553e32780f4661a07fdec8e4aafbbf3">&#9670;&nbsp;</a></span>Initialize()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool crashpad::ProcessSubrangeReader::Initialize </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classcrashpad_1_1ProcessReaderWin.html">ProcessReaderWin</a> *&#160;</td>
<td class="paramname"><em>process_reader</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacecrashpad.html#a368af6d88f68998b5c5eb80b8f6ebb76">WinVMAddress</a>&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacecrashpad.html#a1bac9f2a189b24737e743d6690362239">WinVMSize</a>&#160;</td>
<td class="paramname"><em>size</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::string &amp;&#160;</td>
<td class="paramname"><em>name</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">process_reader</td><td>A reader for a remote process. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">base</td><td>The base address for the range that reads should be restricted to. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">size</td><td>The size of the range that reads should be restricted to. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">name</td><td>The ranges name, a string to be used in logged messages. This string is for diagnostic purposes.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><code>true</code> on success, <code>false</code> on failure with a message logged. The other methods in this class must not be called unless this method or <a class="el" href="classcrashpad_1_1ProcessSubrangeReader.html#a9973cac80710c00a9ef625e5b151e75f" title="Initializes the object to a subrange of an existing ProcessSubrangeReader. ">InitializeSubrange()</a> has returned true. </dd></dl>
</div>
</div>
<a id="a9973cac80710c00a9ef625e5b151e75f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9973cac80710c00a9ef625e5b151e75f">&#9670;&nbsp;</a></span>InitializeSubrange()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool crashpad::ProcessSubrangeReader::InitializeSubrange </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classcrashpad_1_1ProcessSubrangeReader.html">ProcessSubrangeReader</a> &amp;&#160;</td>
<td class="paramname"><em>that</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacecrashpad.html#a368af6d88f68998b5c5eb80b8f6ebb76">WinVMAddress</a>&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacecrashpad.html#a1bac9f2a189b24737e743d6690362239">WinVMSize</a>&#160;</td>
<td class="paramname"><em>size</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::string &amp;&#160;</td>
<td class="paramname"><em>sub_name</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Initializes the object to a subrange of an existing <a class="el" href="classcrashpad_1_1ProcessSubrangeReader.html" title="A wrapper for ProcessReaderWin that only allows a specific subrange to be read from. ">ProcessSubrangeReader</a>. </p>
<p>The subrange identified by <em>base</em> and <em>size</em> must be contained within the subrange in <em>that</em>.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">that</td><td>The existing <a class="el" href="classcrashpad_1_1ProcessSubrangeReader.html" title="A wrapper for ProcessReaderWin that only allows a specific subrange to be read from. ">ProcessSubrangeReader</a> to base the new object on. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">base</td><td>The base address for the range that reads should be restricted to. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">size</td><td>The size of the range that reads should be restricted to. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">sub_name</td><td>A description of the subrange, which will be appended to the <em>name</em> in <em>that</em> and used in logged messages. This string is for diagnostic purposes.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><code>true</code> on success, <code>false</code> on failure with a message logged. The other methods in this class must not be called unless this method or <a class="el" href="classcrashpad_1_1ProcessSubrangeReader.html#af553e32780f4661a07fdec8e4aafbbf3" title="Initializes the object. ">Initialize()</a> has returned true. </dd></dl>
</div>
</div>
<a id="aff3db97a5a2160407c12aeca45b36544"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aff3db97a5a2160407c12aeca45b36544">&#9670;&nbsp;</a></span>ReadMemory()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool crashpad::ProcessSubrangeReader::ReadMemory </td>
<td>(</td>
<td class="paramtype"><a class="el" href="namespacecrashpad.html#a368af6d88f68998b5c5eb80b8f6ebb76">WinVMAddress</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#a1bac9f2a189b24737e743d6690362239">WinVMSize</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>into</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Reads memory from the remote process. </p>
<p>The range specified by <em>address</em> and <em>size</em> must be contained within the range that this object is permitted to read.</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 to read from. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">size</td><td>The size of data to read, in bytes. </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">into</td><td>The buffer to read data into.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><code>true</code> on success, <code>false</code> on failure with a message logged. </dd></dl>
</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li>snapshot/win/process_subrange_reader.h</li>
<li>snapshot/win/process_subrange_reader.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.13
</small></address>
</body>
</html>