<!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.14"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Crashpad: crashpad::ExceptionHandlerServer::Delegate 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.14 -->
<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_1ExceptionHandlerServer.html">ExceptionHandlerServer</a></li><li class="navelem"><a class="el" href="classcrashpad_1_1ExceptionHandlerServer_1_1Delegate.html">Delegate</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_1ExceptionHandlerServer_1_1Delegate-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">crashpad::ExceptionHandlerServer::Delegate Class Reference<span class="mlabels"><span class="mlabel">abstract</span></span></div>  </div>
</div><!--header-->
<div class="contents">
<div class="dynheader">
Inheritance diagram for crashpad::ExceptionHandlerServer::Delegate:</div>
<div class="dyncontent">
 <div class="center">
  <img src="classcrashpad_1_1ExceptionHandlerServer_1_1Delegate.png" usemap="#crashpad::ExceptionHandlerServer::Delegate_map" alt=""/>
  <map id="crashpad::ExceptionHandlerServer::Delegate_map" name="crashpad::ExceptionHandlerServer::Delegate_map">
<area href="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,266,80"/>
<area href="classcrashpad_1_1CrashReportExceptionHandler.html" title="An exception handler that writes crash reports for exception messages to a CrashReportDatabase. " alt="crashpad::CrashReportExceptionHandler" shape="rect" coords="276,56,542,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:a2a914e6fc5649ff45a04450981d02e4b"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1ExceptionHandlerServer_1_1Delegate.html#a2a914e6fc5649ff45a04450981d02e4b">HandleException</a> (pid_t client_process_id, const <a class="el" href="structcrashpad_1_1ClientInformation.html">ClientInformation</a> &amp;info)=0</td></tr>
<tr class="memdesc:a2a914e6fc5649ff45a04450981d02e4b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Called on receipt of a crash dump request from a client.  <a href="#a2a914e6fc5649ff45a04450981d02e4b">More...</a><br /></td></tr>
<tr class="separator:a2a914e6fc5649ff45a04450981d02e4b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a23454637c526f20495ebf6a4688188d7"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1ExceptionHandlerServer_1_1Delegate.html#a23454637c526f20495ebf6a4688188d7">HandleExceptionWithBroker</a> (pid_t client_process_id, const <a class="el" href="structcrashpad_1_1ClientInformation.html">ClientInformation</a> &amp;info, int broker_sock)=0</td></tr>
<tr class="memdesc:a23454637c526f20495ebf6a4688188d7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Called on the receipt of a crash dump request from a client for a crash that should be mediated by a <a class="el" href="classcrashpad_1_1PtraceBroker.html" title="Implements a PtraceConnection over a socket. ">PtraceBroker</a>.  <a href="#a23454637c526f20495ebf6a4688188d7">More...</a><br /></td></tr>
<tr class="separator:a23454637c526f20495ebf6a4688188d7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aeab0d0a0e52dc9ec0be773ce7f08c73a"><td class="memItemLeft" align="right" valign="top"><a id="aeab0d0a0e52dc9ec0be773ce7f08c73a"></a>
virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1ExceptionHandlerServer_1_1Delegate.html#aeab0d0a0e52dc9ec0be773ce7f08c73a">ExceptionHandlerServerStarted</a> ()=0</td></tr>
<tr class="memdesc:aeab0d0a0e52dc9ec0be773ce7f08c73a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Called when the server has created the named pipe connection points and is ready to service requests. <br /></td></tr>
<tr class="separator:aeab0d0a0e52dc9ec0be773ce7f08c73a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa882e662bcede440ba8078edf4cbd14f"><td class="memItemLeft" align="right" valign="top">virtual unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1ExceptionHandlerServer_1_1Delegate.html#aa882e662bcede440ba8078edf4cbd14f">ExceptionHandlerServerException</a> (HANDLE process, <a class="el" href="namespacecrashpad.html#a368af6d88f68998b5c5eb80b8f6ebb76">WinVMAddress</a> exception_information_address, <a class="el" href="namespacecrashpad.html#a368af6d88f68998b5c5eb80b8f6ebb76">WinVMAddress</a> debug_critical_section_address)=0</td></tr>
<tr class="memdesc:aa882e662bcede440ba8078edf4cbd14f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Called when the client has signalled that it has encountered an exception and so wants a crash dump to be taken.  <a href="#aa882e662bcede440ba8078edf4cbd14f">More...</a><br /></td></tr>
<tr class="separator:aa882e662bcede440ba8078edf4cbd14f"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="aa882e662bcede440ba8078edf4cbd14f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa882e662bcede440ba8078edf4cbd14f">&#9670;&nbsp;</a></span>ExceptionHandlerServerException()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual unsigned int crashpad::ExceptionHandlerServer::Delegate::ExceptionHandlerServerException </td>
          <td>(</td>
          <td class="paramtype">HANDLE&#160;</td>
          <td class="paramname"><em>process</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>exception_information_address</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>debug_critical_section_address</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Called when the client has signalled that it has encountered an exception and so wants a crash dump to be taken. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">process</td><td>A handle to the client process. Ownership of the lifetime of this handle is not passed to the delegate. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">exception_information_address</td><td>The address in the client's address space of an <a class="el" href="structcrashpad_1_1ExceptionInformation.html" title="Structure read out of the client process by the crash handler when an exception occurs. ">ExceptionInformation</a> structure. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">debug_critical_section_address</td><td>The address in the client's address space of a <code>CRITICAL_SECTION</code> allocated with a valid <code>.DebugInfo</code> field, or <code>0</code> if unavailable. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The exit code that should be used when terminating the client process. </dd></dl>

<p>Implemented in <a class="el" href="classcrashpad_1_1CrashReportExceptionHandler.html#a1dcfab1bbc889f638b828bd5af296e62">crashpad::CrashReportExceptionHandler</a>.</p>

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

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool crashpad::ExceptionHandlerServer::Delegate::HandleException </td>
          <td>(</td>
          <td class="paramtype">pid_t&#160;</td>
          <td class="paramname"><em>client_process_id</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structcrashpad_1_1ClientInformation.html">ClientInformation</a> &amp;&#160;</td>
          <td class="paramname"><em>info</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Called on receipt of a crash dump request from a client. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">client_process_id</td><td>The process ID of the crashing client. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">info</td><td>Information on the client. </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>

<p>Implemented in <a class="el" href="classcrashpad_1_1CrashReportExceptionHandler.html#ab3ec6f7e770c6c0db7a28c7c01471b7e">crashpad::CrashReportExceptionHandler</a>.</p>

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

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool crashpad::ExceptionHandlerServer::Delegate::HandleExceptionWithBroker </td>
          <td>(</td>
          <td class="paramtype">pid_t&#160;</td>
          <td class="paramname"><em>client_process_id</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structcrashpad_1_1ClientInformation.html">ClientInformation</a> &amp;&#160;</td>
          <td class="paramname"><em>info</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>broker_sock</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Called on the receipt of a crash dump request from a client for a crash that should be mediated by a <a class="el" href="classcrashpad_1_1PtraceBroker.html" title="Implements a PtraceConnection over a socket. ">PtraceBroker</a>. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">client_process_id</td><td>The process ID of the crashing client. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">info</td><td>Information on the client. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">broker_sock</td><td>A socket connected to the <a class="el" href="classcrashpad_1_1PtraceBroker.html" title="Implements a PtraceConnection over a socket. ">PtraceBroker</a>. </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>

<p>Implemented in <a class="el" href="classcrashpad_1_1CrashReportExceptionHandler.html#a784e5435c3b4761a8f6c175670d5eaf8">crashpad::CrashReportExceptionHandler</a>.</p>

</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li>handler/linux/exception_handler_server.h</li>
<li>util/win/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.14
</small></address>
</body>
</html>
