<!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::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.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_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 exceptions to a CrashReportDatabase." alt="crashpad::CrashReportExceptionHandler" shape="rect" coords="0,56,269,80"/>
<area href="classcrashpad_1_1CrosCrashReportExceptionHandler.html" title="An exception handler that writes crash reports to the ChromeOS crash_reporter." alt="crashpad::CrosCrashReportExceptionHandler" shape="rect" coords="279,56,548,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:aebc8d4d844a27c1f28cdae64eea3a6f6"><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#aebc8d4d844a27c1f28cdae64eea3a6f6">HandleException</a> (pid_t client_process_id, uid_t client_uid, const <a class="el" href="structcrashpad_1_1ExceptionHandlerProtocol_1_1ClientInformation.html">ExceptionHandlerProtocol::ClientInformation</a> &amp;info, <a class="el" href="namespacecrashpad.html#af2d003bfc8632755c60ab27bd6d1c8ae">VMAddress</a> requesting_thread_stack_address=0, pid_t *requesting_thread_id=nullptr, <a class="el" href="structcrashpad_1_1UUID.html">UUID</a> *local_report_id=nullptr)=0</td></tr>
<tr class="memdesc:aebc8d4d844a27c1f28cdae64eea3a6f6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Called on receipt of a crash dump request from a client.  <a href="classcrashpad_1_1ExceptionHandlerServer_1_1Delegate.html#aebc8d4d844a27c1f28cdae64eea3a6f6">More...</a><br /></td></tr>
<tr class="separator:aebc8d4d844a27c1f28cdae64eea3a6f6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afd2cb53f2df3377d8ec66c9565cd9179"><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#afd2cb53f2df3377d8ec66c9565cd9179">HandleExceptionWithBroker</a> (pid_t client_process_id, uid_t client_uid, const <a class="el" href="structcrashpad_1_1ExceptionHandlerProtocol_1_1ClientInformation.html">ExceptionHandlerProtocol::ClientInformation</a> &amp;info, int broker_sock, <a class="el" href="structcrashpad_1_1UUID.html">UUID</a> *local_report_id=nullptr)=0</td></tr>
<tr class="memdesc:afd2cb53f2df3377d8ec66c9565cd9179"><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="classcrashpad_1_1ExceptionHandlerServer_1_1Delegate.html#afd2cb53f2df3377d8ec66c9565cd9179">More...</a><br /></td></tr>
<tr class="separator:afd2cb53f2df3377d8ec66c9565cd9179"><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="classcrashpad_1_1ExceptionHandlerServer_1_1Delegate.html#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="aebc8d4d844a27c1f28cdae64eea3a6f6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aebc8d4d844a27c1f28cdae64eea3a6f6">&#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">uid_t&#160;</td>
          <td class="paramname"><em>client_uid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structcrashpad_1_1ExceptionHandlerProtocol_1_1ClientInformation.html">ExceptionHandlerProtocol::ClientInformation</a> &amp;&#160;</td>
          <td class="paramname"><em>info</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespacecrashpad.html#af2d003bfc8632755c60ab27bd6d1c8ae">VMAddress</a>&#160;</td>
          <td class="paramname"><em>requesting_thread_stack_address</em> = <code>0</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">pid_t *&#160;</td>
          <td class="paramname"><em>requesting_thread_id</em> = <code>nullptr</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structcrashpad_1_1UUID.html">UUID</a> *&#160;</td>
          <td class="paramname"><em>local_report_id</em> = <code>nullptr</code>&#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">client_uid</td><td>The user 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">requesting_thread_stack_address</td><td>Any address within the stack range for the the thread that sent the crash dump request. Optional. If unspecified or 0, <em>requesting_thread_id</em> will be -1. </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">requesting_thread_id</td><td>The thread ID of the thread which requested the crash dump if not <code>nullptr</code>. Set to -1 if the thread ID could not be determined. Optional. </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">local_report_id</td><td>The unique identifier for the report created in the local report database. Optional. </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#a1fbcf0d81ffaa2503a18e9c9be4ef904">crashpad::CrashReportExceptionHandler</a>, and <a class="el" href="classcrashpad_1_1CrosCrashReportExceptionHandler.html#aa4eda1783adb5209e229a5d2e5a6fc9e">crashpad::CrosCrashReportExceptionHandler</a>.</p>

</div>
</div>
<a id="afd2cb53f2df3377d8ec66c9565cd9179"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afd2cb53f2df3377d8ec66c9565cd9179">&#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">uid_t&#160;</td>
          <td class="paramname"><em>client_uid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structcrashpad_1_1ExceptionHandlerProtocol_1_1ClientInformation.html">ExceptionHandlerProtocol::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>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structcrashpad_1_1UUID.html">UUID</a> *&#160;</td>
          <td class="paramname"><em>local_report_id</em> = <code>nullptr</code>&#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">client_uid</td><td>The uid 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>
    <tr><td class="paramdir">[out]</td><td class="paramname">local_report_id</td><td>The unique identifier for the report created in the local report database. Optional. </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#a987b0c71d61a773d3ae6378b61ca92c0">crashpad::CrashReportExceptionHandler</a>, and <a class="el" href="classcrashpad_1_1CrosCrashReportExceptionHandler.html#a91421eef2fd1ce673d5fed995a14aef5">crashpad::CrosCrashReportExceptionHandler</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.18
</small></address>
</body>
</html>
