crashpad/doc/generated/doxygen/classcrashpad_1_1ExceptionHandlerServer.html
2015-10-08 14:55:01 -04:00

236 lines
14 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.9.1"/>
<title>Crashpad: crashpad::ExceptionHandlerServer 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>
<script type="text/javascript">
$(document).ready(function() { init_search(); });
</script>
<link href="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 style="padding-left: 0.5em;">
<div id="projectname">Crashpad
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.9.1 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="annotated.html"><span>Class&#160;List</span></a></li>
<li><a href="classes.html"><span>Class&#160;Index</span></a></li>
<li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</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_1ExceptionHandlerServer.html">ExceptionHandlerServer</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="classcrashpad_1_1ExceptionHandlerServer-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">crashpad::ExceptionHandlerServer Class Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>Runs the main exception-handling server in Crashpads handler process.
<a href="classcrashpad_1_1ExceptionHandlerServer.html#details">More...</a></p>
<p><code>#include &quot;util/win/exception_handler_server.h&quot;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1ExceptionHandlerServer_1_1Delegate.html">Delegate</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><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:a348789edd93bcd388ddd38c77230583d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1ExceptionHandlerServer.html#a348789edd93bcd388ddd38c77230583d">Run</a> (<a class="el" href="classcrashpad_1_1UniversalMachExcServer_1_1Interface.html">UniversalMachExcServer::Interface</a> *exception_interface)</td></tr>
<tr class="memdesc:a348789edd93bcd388ddd38c77230583d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Runs the exception-handling server. <a href="#a348789edd93bcd388ddd38c77230583d">More...</a><br /></td></tr>
<tr class="separator:a348789edd93bcd388ddd38c77230583d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1504c185b98ce8dce4d075afaf7ef949"><td class="memItemLeft" align="right" valign="top">mach_port_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1ExceptionHandlerServer.html#a1504c185b98ce8dce4d075afaf7ef949">receive_port</a> () const </td></tr>
<tr class="memdesc:a1504c185b98ce8dce4d075afaf7ef949"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the receive right that will be monitored for exception messages. <a href="#a1504c185b98ce8dce4d075afaf7ef949">More...</a><br /></td></tr>
<tr class="separator:a1504c185b98ce8dce4d075afaf7ef949"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a07d520ff019b6a60cbaa61b8c1d50e09"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a07d520ff019b6a60cbaa61b8c1d50e09"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1ExceptionHandlerServer.html#a07d520ff019b6a60cbaa61b8c1d50e09">ExceptionHandlerServer</a> ()</td></tr>
<tr class="memdesc:a07d520ff019b6a60cbaa61b8c1d50e09"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs the exception handling server. <br /></td></tr>
<tr class="separator:a07d520ff019b6a60cbaa61b8c1d50e09"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aca3383f98699e99f3c2c2c9ccf2fdf28"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1ExceptionHandlerServer.html#aca3383f98699e99f3c2c2c9ccf2fdf28">Run</a> (<a class="el" href="classcrashpad_1_1ExceptionHandlerServer_1_1Delegate.html">Delegate</a> *delegate, const std::string &amp;pipe_name)</td></tr>
<tr class="memdesc:aca3383f98699e99f3c2c2c9ccf2fdf28"><td class="mdescLeft">&#160;</td><td class="mdescRight">Runs the exception-handling server. <a href="#aca3383f98699e99f3c2c2c9ccf2fdf28">More...</a><br /></td></tr>
<tr class="separator:aca3383f98699e99f3c2c2c9ccf2fdf28"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a75dd814798b8f8224f53d84cea8368be"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a75dd814798b8f8224f53d84cea8368be"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1ExceptionHandlerServer.html#a75dd814798b8f8224f53d84cea8368be">Stop</a> ()</td></tr>
<tr class="memdesc:a75dd814798b8f8224f53d84cea8368be"><td class="mdescLeft">&#160;</td><td class="mdescRight">Stops the exception-handling server. Returns immediately. The object must not be destroyed until <a class="el" href="classcrashpad_1_1ExceptionHandlerServer.html#a348789edd93bcd388ddd38c77230583d" title="Runs the exception-handling server. ">Run()</a> returns. <br /></td></tr>
<tr class="separator:a75dd814798b8f8224f53d84cea8368be"><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>Runs the main exception-handling server in Crashpads handler process. </p>
<p>Runs the main exception-handling server in Crashpad's handler process. </p>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="a1504c185b98ce8dce4d075afaf7ef949"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">mach_port_t crashpad::ExceptionHandlerServer::receive_port </td>
<td>(</td>
<td class="paramname"></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>Returns the receive right that will be monitored for exception messages. </p>
<p>The caller does not take ownership of this port. The caller must not use this port for any purpose other than to make send rights for clients. </p>
</div>
</div>
<a class="anchor" id="a348789edd93bcd388ddd38c77230583d"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void crashpad::ExceptionHandlerServer::Run </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classcrashpad_1_1UniversalMachExcServer_1_1Interface.html">UniversalMachExcServer::Interface</a> *&#160;</td>
<td class="paramname"><em>exception_interface</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Runs the exception-handling server. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">exception_interface</td><td>An object to send exception messages to.</td></tr>
</table>
</dd>
</dl>
<p>This method monitors <a class="el" href="classcrashpad_1_1ExceptionHandlerServer.html#a1504c185b98ce8dce4d075afaf7ef949" title="Returns the receive right that will be monitored for exception messages. ">receive_port()</a> for exception messages and no-senders notifications. It continues running until it has no more clients, indicated by the receipt of a no-senders notification. It is important to assure that a send right has been transferred to a client (or queued by <code>mach_msg()</code> to be sent to a client) prior to calling this method, or it will detect that it is sender-less and return immediately.</p>
<p>All exception messages will be passed to <em>exception_interface</em>.</p>
<p>This method must only be called once on an <a class="el" href="classcrashpad_1_1ExceptionHandlerServer.html" title="Runs the main exception-handling server in Crashpads handler process. ">ExceptionHandlerServer</a> object.</p>
<p>If an unexpected condition that prevents this method from functioning is encountered, it will log a message and terminate execution. Receipt of an invalid message on <a class="el" href="classcrashpad_1_1ExceptionHandlerServer.html#a1504c185b98ce8dce4d075afaf7ef949" title="Returns the receive right that will be monitored for exception messages. ">receive_port()</a> will cause a message to be logged, but this method will continue running normally. </p>
</div>
</div>
<a class="anchor" id="aca3383f98699e99f3c2c2c9ccf2fdf28"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void crashpad::ExceptionHandlerServer::Run </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classcrashpad_1_1ExceptionHandlerServer_1_1Delegate.html">Delegate</a> *&#160;</td>
<td class="paramname"><em>delegate</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::string &amp;&#160;</td>
<td class="paramname"><em>pipe_name</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Runs the exception-handling server. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">delegate</td><td>The interface to which the exceptions are delegated when they are caught in <a class="el" href="classcrashpad_1_1ExceptionHandlerServer.html#a348789edd93bcd388ddd38c77230583d" title="Runs the exception-handling server. ">Run()</a>. Ownership is not transferred. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">pipe_name</td><td>The name of the pipe to listen on. Must be of the form "\\.\pipe\&lt;some_name&gt;". </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li>handler/mac/exception_handler_server.h</li>
<li>handler/mac/exception_handler_server.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.9.1
</small></address>
</body>
</html>