<ahref="#pub-methods">Public Member Functions</a>|
<ahref="classcrashpad_1_1CrashReportExceptionHandler-members.html">List of all members</a></div>
<divclass="headertitle">
<divclass="title">crashpad::CrashReportExceptionHandler Class Reference</div></div>
</div><!--header-->
<divclass="contents">
<p>An exception handler that writes crash reports for exception messages to a <aclass="el"href="classcrashpad_1_1CrashReportDatabase.html"title="An interface for managing a collection of crash report files and metadata associated with the crash r...">CrashReportDatabase</a>.
<areahref="classcrashpad_1_1UniversalMachExcServer_1_1Interface.html"title="An interface that the different request messages that are a part of the exc and mach_exc Mach subsyst..."alt="crashpad::UniversalMachExcServer::Interface"shape="rect"coords="282,0,554,24"/>
<trclass="memdesc:a4f1186881c2b5093443624b4afedd592"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Creates a new object that will store crash reports in <em>database</em>. <ahref="#a4f1186881c2b5093443624b4afedd592">More...</a><br/></td></tr>
<trclass="memdesc:af5fba19c5a6e5168d1b88cfa18a407fd"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Called when the exception handler server has caught an exception and wants a crash dump to be taken. <ahref="#af5fba19c5a6e5168d1b88cfa18a407fd">More...</a><br/></td></tr>
<trclass="memdesc:a576db96df6f5a1e8315ad55222dfe46a"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Called when the exception handler server has caught an exception and wants a crash dump to be taken. <ahref="#a576db96df6f5a1e8315ad55222dfe46a">More...</a><br/></td></tr>
<trclass="memdesc:a8a8370bde381637feb46d4095e047303"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Creates a new object that will store crash reports in <em>database</em>. <ahref="#a8a8370bde381637feb46d4095e047303">More...</a><br/></td></tr>
<trclass="memdesc:ab3ec6f7e770c6c0db7a28c7c01471b7e"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Called on receipt of a crash dump request from a client. <ahref="#ab3ec6f7e770c6c0db7a28c7c01471b7e">More...</a><br/></td></tr>
<trclass="memitem:a784e5435c3b4761a8f6c175670d5eaf8"><tdclass="memItemLeft"align="right"valign="top">bool </td><tdclass="memItemRight"valign="bottom"><aclass="el"href="classcrashpad_1_1CrashReportExceptionHandler.html#a784e5435c3b4761a8f6c175670d5eaf8">HandleExceptionWithBroker</a> (pid_t client_process_id, const <aclass="el"href="structcrashpad_1_1ClientInformation.html">ClientInformation</a>&info, int broker_sock) override</td></tr>
<trclass="memdesc:a784e5435c3b4761a8f6c175670d5eaf8"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Called on the receipt of a crash dump request from a client for a crash that should be mediated by a <aclass="el"href="classcrashpad_1_1PtraceBroker.html"title="Implements a PtraceConnection over a socket. ">PtraceBroker</a>. <ahref="#a784e5435c3b4761a8f6c175670d5eaf8">More...</a><br/></td></tr>
<trclass="memdesc:a8a8370bde381637feb46d4095e047303"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Creates a new object that will store crash reports in <em>database</em>. <ahref="#a8a8370bde381637feb46d4095e047303">More...</a><br/></td></tr>
<trclass="memdesc:a98ecf7abdf0a99fe30b6fa7116649bee"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Processes an exception message by writing a crash report to this object’s <aclass="el"href="classcrashpad_1_1CrashReportDatabase.html"title="An interface for managing a collection of crash report files and metadata associated with the crash r...">CrashReportDatabase</a>. <br/></td></tr>
<trclass="memdesc:a8a8370bde381637feb46d4095e047303"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Creates a new object that will store crash reports in <em>database</em>. <ahref="#a8a8370bde381637feb46d4095e047303">More...</a><br/></td></tr>
<trclass="memdesc:aced3c98628a1f723dbd7952f8e3b421f"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Processes an exception message by writing a crash report to this object's <aclass="el"href="classcrashpad_1_1CrashReportDatabase.html"title="An interface for managing a collection of crash report files and metadata associated with the crash r...">CrashReportDatabase</a>. <br/></td></tr>
<trclass="memdesc:a1dcfab1bbc889f638b828bd5af296e62"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Called when the client has signalled that it has encountered an exception and so wants a crash dump to be taken. <ahref="#a1dcfab1bbc889f638b828bd5af296e62">More...</a><br/></td></tr>
<divclass="textblock"><p>An exception handler that writes crash reports for exception messages to a <aclass="el"href="classcrashpad_1_1CrashReportDatabase.html"title="An interface for managing a collection of crash report files and metadata associated with the crash r...">CrashReportDatabase</a>. </p>
<p>An exception handler that writes crash reports for exceptions to a <aclass="el"href="classcrashpad_1_1CrashReportDatabase.html"title="An interface for managing a collection of crash report files and metadata associated with the crash r...">CrashReportDatabase</a>. </p>
<p>Creates a new object that will store crash reports in <em>database</em>. </p>
<dlclass="params"><dt>Parameters</dt><dd>
<tableclass="params">
<tr><tdclass="paramdir">[in]</td><tdclass="paramname">database</td><td>The database to store crash reports in. Weak. </td></tr>
<tr><tdclass="paramdir">[in]</td><tdclass="paramname">upload_thread</td><td>The upload thread to notify when a new crash report is written into <em>database</em>. </td></tr>
<tr><tdclass="paramdir">[in]</td><tdclass="paramname">process_annotations</td><td>A map of annotations to insert as process-level annotations into each crash report that is written. Do not confuse this with module-level annotations, which are under the control of the crashing process, and are used to implement Chrome's "crash keys." Process-level annotations are those that are beyond the control of the crashing process, which must reliably be set even if the process crashes before it’s able to establish its own annotations. To interoperate with Breakpad servers, the recommended practice is to specify values for the <code>"prod"</code> and <code>"ver"</code> keys as process annotations. </td></tr>
<tr><tdclass="paramdir">[in]</td><tdclass="paramname">process_attachments</td><td>A map of file name keys to file paths to be included in the report. Each time a report is written, the file paths will be read in their entirety and included in the report using the file name key as the name in the http upload. </td></tr>
<tr><tdclass="paramdir">[in]</td><tdclass="paramname">user_stream_data_sources</td><td>Data sources to be used to extend crash reports. For each crash report that is written, the data sources are called in turn. These data sources may contribute additional minidump streams. <code>nullptr</code> if not required. </td></tr>
<p>Creates a new object that will store crash reports in <em>database</em>. </p>
<dlclass="params"><dt>Parameters</dt><dd>
<tableclass="params">
<tr><tdclass="paramdir">[in]</td><tdclass="paramname">database</td><td>The database to store crash reports in. Weak. </td></tr>
<tr><tdclass="paramdir">[in]</td><tdclass="paramname">upload_thread</td><td>The upload thread to notify when a new crash report is written into <em>database</em>. Report upload is skipped if this value is <code>nullptr</code>. </td></tr>
<tr><tdclass="paramdir">[in]</td><tdclass="paramname">process_annotations</td><td>A map of annotations to insert as process-level annotations into each crash report that is written. Do not confuse this with module-level annotations, which are under the control of the crashing process, and are used to implement Chrome’s “crash keys.” Process-level annotations are those that are beyond the control of the crashing process, which must reliably be set even if the process crashes before it’s able to establish its own annotations. To interoperate with Breakpad servers, the recommended practice is to specify values for the <code>"prod"</code> and <code>"ver"</code> keys as process annotations. </td></tr>
<tr><tdclass="paramdir">[in]</td><tdclass="paramname">user_stream_data_sources</td><td>Data sources to be used to extend crash reports. For each crash report that is written, the data sources are called in turn. These data sources may contribute additional minidump streams. <code>nullptr</code> if not required. </td></tr>
<tr><tdclass="paramdir">[in]</td><tdclass="paramname">upload_thread</td><td>The upload thread to notify when a new crash report is written into <em>database</em>. Report upload is skipped if this value is <code>nullptr</code>. </td></tr>
<tr><tdclass="paramdir">[in]</td><tdclass="paramname">process_annotations</td><td>A map of annotations to insert as process-level annotations into each crash report that is written. Do not confuse this with module-level annotations, which are under the control of the crashing process, and are used to implement Chrome’s “crash keys.” Process-level annotations are those that are beyond the control of the crashing process, which must reliably be set even if the process crashes before it’s able to establish its own annotations. To interoperate with Breakpad servers, the recommended practice is to specify values for the <code>"prod"</code> and <code>"ver"</code> keys as process annotations. </td></tr>
<tr><tdclass="paramdir">[in]</td><tdclass="paramname">user_stream_data_sources</td><td>Data sources to be used to extend crash reports. For each crash report that is written, the data sources are called in turn. These data sources may contribute additional minidump streams. <code>nullptr</code> if not required. </td></tr>
<p>Creates a new object that will store crash reports in <em>database</em>. </p>
<dlclass="params"><dt>Parameters</dt><dd>
<tableclass="params">
<tr><tdclass="paramdir">[in]</td><tdclass="paramname">database</td><td>The database to store crash reports in. Weak. </td></tr>
<tr><tdclass="paramdir">[in]</td><tdclass="paramname">upload_thread</td><td>The upload thread to notify when a new crash report is written into <em>database</em>. Report upload is skipped if this value is <code>nullptr</code>. </td></tr>
<tr><tdclass="paramdir">[in]</td><tdclass="paramname">process_annotations</td><td>A map of annotations to insert as process-level annotations into each crash report that is written. Do not confuse this with module-level annotations, which are under the control of the crashing process, and are used to implement Chrome's "crash keys." Process-level annotations are those that are beyond the control of the crashing process, which must reliably be set even if the process crashes before it's able to establish its own annotations. To interoperate with Breakpad servers, the recommended practice is to specify values for the <code>"prod"</code> and <code>"ver"</code> keys as process annotations. </td></tr>
<tr><tdclass="paramdir">[in]</td><tdclass="paramname">user_stream_data_sources</td><td>Data sources to be used to extend crash reports. For each crash report that is written, the data sources are called in turn. These data sources may contribute additional minidump streams. <code>nullptr</code> if not required. </td></tr>
<p>Called when the client has signalled that it has encountered an exception and so wants a crash dump to be taken. </p>
<dlclass="params"><dt>Parameters</dt><dd>
<tableclass="params">
<tr><tdclass="paramdir">[in]</td><tdclass="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><tdclass="paramdir">[in]</td><tdclass="paramname">exception_information_address</td><td>The address in the client's address space of an <aclass="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><tdclass="paramdir">[in]</td><tdclass="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>
<p>Called when the exception handler server has caught an exception and wants a crash dump to be taken. </p>
<p>This function is expected to call <code>zx_task_resume()</code> in order to complete handling of the exception.</p>
<dlclass="params"><dt>Parameters</dt><dd>
<tableclass="params">
<tr><tdclass="paramdir">[in]</td><tdclass="paramname">process</td><td>The handle to the process which sustained the exception. </td></tr>
<tr><tdclass="paramdir">[in]</td><tdclass="paramname">thread</td><td>The handle to the thread of <em>process</em> which sustained the exception. </td></tr>
</table>
</dd>
</dl>
<dlclass="section return"><dt>Returns</dt><dd><code>true</code> on success, or <code>false</code> with an error logged. </dd></dl>
<p>Called on the receipt of a crash dump request from a client for a crash that should be mediated by a <aclass="el"href="classcrashpad_1_1PtraceBroker.html"title="Implements a PtraceConnection over a socket. ">PtraceBroker</a>. </p>
<dlclass="params"><dt>Parameters</dt><dd>
<tableclass="params">
<tr><tdclass="paramdir">[in]</td><tdclass="paramname">client_process_id</td><td>The process ID of the crashing client. </td></tr>
<tr><tdclass="paramdir">[in]</td><tdclass="paramname">info</td><td>Information on the client. </td></tr>
<tr><tdclass="paramdir">[in]</td><tdclass="paramname">broker_sock</td><td>A socket connected to the <aclass="el"href="classcrashpad_1_1PtraceBroker.html"title="Implements a PtraceConnection over a socket. ">PtraceBroker</a>. </td></tr>
</table>
</dd>
</dl>
<dlclass="section return"><dt>Returns</dt><dd><code>true</code> on success. <code>false</code> on failure with a message logged. </dd></dl>