<ahref="#pub-methods">Public Member Functions</a>|
<ahref="classcrashpad_1_1UniversalMachExcServer_1_1Interface-members.html">List of all members</a></div>
<divclass="headertitle">
<divclass="title">crashpad::UniversalMachExcServer::Interface Class Reference<spanclass="mlabels"><spanclass="mlabel">abstract</span></span></div></div>
</div><!--header-->
<divclass="contents">
<p>An interface that the different request messages that are a part of the <code>exc</code> and <code>mach_exc</code> Mach subsystems can be dispatched to.
<areahref="classcrashpad_1_1CrashReportExceptionHandler.html"title="An exception handler that writes crash reports for exception messages to a CrashReportDatabase. "alt="crashpad::CrashReportExceptionHandler"shape="rect"coords="0,56,368,80"/>
<divclass="textblock"><p>An interface that the different request messages that are a part of the <code>exc</code> and <code>mach_exc</code> Mach subsystems can be dispatched to. </p>
</div><h2class="groupheader">Member Function Documentation</h2>
<p>Handles exceptions raised by <code>exception_raise()</code>, <code>exception_raise_state()</code>, <code>exception_raise_state_identity()</code>, <code>mach_exception_raise()</code>, <code>mach_exception_raise_state()</code>, and <code>mach_exception_raise_state_identity()</code>. </p>
<p>For convenience in implementation, these different “behaviors” of exception messages are all mapped to a single interface method. The exception’s original “behavior” is specified in the <em>behavior</em> parameter. Only parameters that were supplied in the request message are populated, other parameters are set to reasonable default values.</p>
<p>This behaves equivalently to a <code>catch_exception_raise_state_identity()</code> function used with <code>exc_server()</code>, or a <code>catch_mach_exception_raise_state_identity()</code> function used with <code>mach_exc_server()</code>. Except as noted, the parameters and return value are equivalent to those of these other functions.</p>
<tr><tdclass="paramdir">[in]</td><tdclass="paramname">behavior</td><td><code>EXCEPTION_DEFAULT</code>, <code>EXCEPTION_STATE</code>, or <code>EXCEPTION_STATE_IDENTITY</code>, possibly with <code>MACH_EXCEPTION_CODES</code> ORed in. This identifies which exception request message was processed and thus which other parameters are valid. </td></tr>
<tr><tdclass="paramdir">[out]</td><tdclass="paramname">destroy_complex_request</td><td><code>true</code> if the request message is to be destroyed even when this method returns success. See <aclass="el"href="classcrashpad_1_1MachMessageServer_1_1Interface.html"title="A Mach RPC callback interface, called by Run(). ">MachMessageServer::Interface</a>.</td></tr>
<dlclass="section return"><dt>Returns</dt><dd>A code indicating whether the exception was handled. See <aclass="el"href="namespacecrashpad.html#a2112e7fcb6a2fc7f9b6b0ff8856e8466"title="Computes an approriate successful return value for an exception handler function. ...">ExcServerSuccessfulReturnValue()</a> for success codes. On failure, a code such as <code>KERN_FAILURE</code>. </dd></dl>
<p>Implemented in <aclass="el"href="classcrashpad_1_1CrashReportExceptionHandler.html#a98ecf7abdf0a99fe30b6fa7116649bee">crashpad::CrashReportExceptionHandler</a>.</p>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>util/mach/exc_server_variants.h</li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hrclass="footer"/><addressclass="footer"><small>
Generated by  <ahref="http://www.doxygen.org/index.html">