blob: 72c7e2db23a0ffccaf93ad58dee01b30e0b3f8e4 [file] [log] [blame]
<!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::Metrics 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_1Metrics.html">Metrics</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
<a href="classcrashpad_1_1Metrics-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">crashpad::Metrics Class Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>Container class to hold shared UMA metrics integration points.
<a href="classcrashpad_1_1Metrics.html#details">More...</a></p>
<p><code>#include &quot;util/misc/metrics.h&quot;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public Types</h2></td></tr>
<tr class="memitem:a5881f58aa7bb94bd82677670dbdbac06"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1Metrics.html#a5881f58aa7bb94bd82677670dbdbac06">PendingReportReason</a> : int32_t </td></tr>
<tr class="memdesc:a5881f58aa7bb94bd82677670dbdbac06"><td class="mdescLeft">&#160;</td><td class="mdescRight">Values for <a class="el" href="classcrashpad_1_1Metrics.html#a634e86f4867b8649c1f0cab69b45d9e7" title="Reports when a crash upload has entered the pending state. ">CrashReportPending()</a>. <a href="classcrashpad_1_1Metrics.html#a5881f58aa7bb94bd82677670dbdbac06">More...</a><br /></td></tr>
<tr class="separator:a5881f58aa7bb94bd82677670dbdbac06"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa27da6c2bda5b2982fcb636786053c0d"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1Metrics.html#aa27da6c2bda5b2982fcb636786053c0d">CrashSkippedReason</a> : int32_t </td></tr>
<tr class="memdesc:aa27da6c2bda5b2982fcb636786053c0d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Values for <a class="el" href="classcrashpad_1_1Metrics.html#a5b33698eb945386fff7950bb22225e13" title="Reports when a report is moved to the completed state in the database, without the report being uploa...">CrashUploadSkipped()</a>. <a href="classcrashpad_1_1Metrics.html#aa27da6c2bda5b2982fcb636786053c0d">More...</a><br /></td></tr>
<tr class="separator:aa27da6c2bda5b2982fcb636786053c0d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6fced90d0ab7cbd161db410e2609bae0"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1Metrics.html#a6fced90d0ab7cbd161db410e2609bae0">CaptureResult</a> : int32_t </td></tr>
<tr class="memdesc:a6fced90d0ab7cbd161db410e2609bae0"><td class="mdescLeft">&#160;</td><td class="mdescRight">The result of capturing an exception. <a href="classcrashpad_1_1Metrics.html#a6fced90d0ab7cbd161db410e2609bae0">More...</a><br /></td></tr>
<tr class="separator:a6fced90d0ab7cbd161db410e2609bae0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a14f5476a370951cfeaa514c3eea6226d"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1Metrics.html#a14f5476a370951cfeaa514c3eea6226d">LifetimeMilestone</a> : int32_t </td></tr>
<tr class="memdesc:a14f5476a370951cfeaa514c3eea6226d"><td class="mdescLeft">&#160;</td><td class="mdescRight">An important event in a handler process’ lifetime. <a href="classcrashpad_1_1Metrics.html#a14f5476a370951cfeaa514c3eea6226d">More...</a><br /></td></tr>
<tr class="separator:a14f5476a370951cfeaa514c3eea6226d"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
Static Public Member Functions</h2></td></tr>
<tr class="memitem:a634e86f4867b8649c1f0cab69b45d9e7"><td class="memItemLeft" align="right" valign="top"><a id="a634e86f4867b8649c1f0cab69b45d9e7"></a>
static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1Metrics.html#a634e86f4867b8649c1f0cab69b45d9e7">CrashReportPending</a> (<a class="el" href="classcrashpad_1_1Metrics.html#a5881f58aa7bb94bd82677670dbdbac06">PendingReportReason</a> reason)</td></tr>
<tr class="memdesc:a634e86f4867b8649c1f0cab69b45d9e7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reports when a crash upload has entered the pending state. <br /></td></tr>
<tr class="separator:a634e86f4867b8649c1f0cab69b45d9e7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae1698e5850c5ba758985bc62c901665c"><td class="memItemLeft" align="right" valign="top"><a id="ae1698e5850c5ba758985bc62c901665c"></a>
static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1Metrics.html#ae1698e5850c5ba758985bc62c901665c">CrashReportSize</a> (<a class="el" href="namespacecrashpad.html#a1e53a1957d9edcba8b406ea632b6daf2">FileOffset</a> size)</td></tr>
<tr class="memdesc:ae1698e5850c5ba758985bc62c901665c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reports the size of a crash report file in bytes. Should be called when a new report is written to disk. <br /></td></tr>
<tr class="separator:ae1698e5850c5ba758985bc62c901665c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afbb6dd9ac038f3c3ad9b1f5056e39202"><td class="memItemLeft" align="right" valign="top"><a id="afbb6dd9ac038f3c3ad9b1f5056e39202"></a>
static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1Metrics.html#afbb6dd9ac038f3c3ad9b1f5056e39202">CrashUploadAttempted</a> (bool successful)</td></tr>
<tr class="memdesc:afbb6dd9ac038f3c3ad9b1f5056e39202"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reports on a crash upload attempt, and if it succeeded. <br /></td></tr>
<tr class="separator:afbb6dd9ac038f3c3ad9b1f5056e39202"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5b33698eb945386fff7950bb22225e13"><td class="memItemLeft" align="right" valign="top"><a id="a5b33698eb945386fff7950bb22225e13"></a>
static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1Metrics.html#a5b33698eb945386fff7950bb22225e13">CrashUploadSkipped</a> (<a class="el" href="classcrashpad_1_1Metrics.html#aa27da6c2bda5b2982fcb636786053c0d">CrashSkippedReason</a> reason)</td></tr>
<tr class="memdesc:a5b33698eb945386fff7950bb22225e13"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reports when a report is moved to the completed state in the database, without the report being uploadad. <br /></td></tr>
<tr class="separator:a5b33698eb945386fff7950bb22225e13"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa741bf2037d86add3475d8656465bca2"><td class="memItemLeft" align="right" valign="top"><a id="aa741bf2037d86add3475d8656465bca2"></a>
static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1Metrics.html#aa741bf2037d86add3475d8656465bca2">ExceptionCaptureResult</a> (<a class="el" href="classcrashpad_1_1Metrics.html#a6fced90d0ab7cbd161db410e2609bae0">CaptureResult</a> result)</td></tr>
<tr class="memdesc:aa741bf2037d86add3475d8656465bca2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reports on the outcome of capturing a report in the exception handler. Should be called on all capture completion paths. <br /></td></tr>
<tr class="separator:aa741bf2037d86add3475d8656465bca2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2155b6349b1a852a951394a3169a2cb3"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1Metrics.html#a2155b6349b1a852a951394a3169a2cb3">ExceptionCode</a> (uint32_t exception_code)</td></tr>
<tr class="memdesc:a2155b6349b1a852a951394a3169a2cb3"><td class="mdescLeft">&#160;</td><td class="mdescRight">The exception code for an exception was retrieved. <a href="#a2155b6349b1a852a951394a3169a2cb3">More...</a><br /></td></tr>
<tr class="separator:a2155b6349b1a852a951394a3169a2cb3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a663a8bf22e07ae48082b5accc8a1f862"><td class="memItemLeft" align="right" valign="top"><a id="a663a8bf22e07ae48082b5accc8a1f862"></a>
static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1Metrics.html#a663a8bf22e07ae48082b5accc8a1f862">ExceptionEncountered</a> ()</td></tr>
<tr class="memdesc:a663a8bf22e07ae48082b5accc8a1f862"><td class="mdescLeft">&#160;</td><td class="mdescRight">The exception handler server started capturing an exception. <br /></td></tr>
<tr class="separator:a663a8bf22e07ae48082b5accc8a1f862"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6e30c5852e7c97ef98443b6bae22b37f"><td class="memItemLeft" align="right" valign="top"><a id="a6e30c5852e7c97ef98443b6bae22b37f"></a>
static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1Metrics.html#a6e30c5852e7c97ef98443b6bae22b37f">HandlerLifetimeMilestone</a> (<a class="el" href="classcrashpad_1_1Metrics.html#a14f5476a370951cfeaa514c3eea6226d">LifetimeMilestone</a> milestone)</td></tr>
<tr class="memdesc:a6e30c5852e7c97ef98443b6bae22b37f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Records a handler start/exit/crash event. <br /></td></tr>
<tr class="separator:a6e30c5852e7c97ef98443b6bae22b37f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a414d83c6d5eeb481ae1c6d9c01692565"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1Metrics.html#a414d83c6d5eeb481ae1c6d9c01692565">HandlerCrashed</a> (uint32_t exception_code)</td></tr>
<tr class="memdesc:a414d83c6d5eeb481ae1c6d9c01692565"><td class="mdescLeft">&#160;</td><td class="mdescRight">The handler process crashed with the given exception code. <a href="#a414d83c6d5eeb481ae1c6d9c01692565">More...</a><br /></td></tr>
<tr class="separator:a414d83c6d5eeb481ae1c6d9c01692565"><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>Container class to hold shared UMA metrics integration points. </p>
<p>Each static function in this class will call a <code>UMA_*</code> from <code>base/metrics/histogram_macros.h</code>. When building Crashpad standalone, (against mini_chromium), these macros do nothing. When built against Chromium's base, they allow integration with its metrics system. </p>
</div><h2 class="groupheader">Member Enumeration Documentation</h2>
<a id="a6fced90d0ab7cbd161db410e2609bae0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6fced90d0ab7cbd161db410e2609bae0">&#9670;&nbsp;</a></span>CaptureResult</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="classcrashpad_1_1Metrics.html#a6fced90d0ab7cbd161db410e2609bae0">crashpad::Metrics::CaptureResult</a> : int32_t</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">strong</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>The result of capturing an exception. </p>
<dl class="section note"><dt>Note</dt><dd>These are used as metrics enumeration values, so new values should always be added at the end, before <a class="el" href="classcrashpad_1_1Metrics.html#a6fced90d0ab7cbd161db410e2609bae0aa4f5363ade31fbbf363aea06f528c379" title="The number of values in this enumeration; not a valid value. ">CaptureResult::kMaxValue</a>. </dd></dl>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="a6fced90d0ab7cbd161db410e2609bae0a8c632159fa131f09d04f94e3cbcd8782"></a>kSuccess&#160;</td><td class="fielddoc"><p>The exception capture succeeded normally. </p>
</td></tr>
<tr><td class="fieldname"><a id="a6fced90d0ab7cbd161db410e2609bae0af01703880cc8853d905fa6904998065c"></a>kUnexpectedExceptionBehavior&#160;</td><td class="fielddoc"><p>Unexpected exception behavior. </p>
<p>This value is only used on macOS. </p>
</td></tr>
<tr><td class="fieldname"><a id="a6fced90d0ab7cbd161db410e2609bae0a4d77a5e087a56e21481edfa7069131b2"></a>kFailedDueToSuspendSelf&#160;</td><td class="fielddoc"><p>Failed due to attempt to suspend self. </p>
<p>This value is only used on macOS. </p>
</td></tr>
<tr><td class="fieldname"><a id="a6fced90d0ab7cbd161db410e2609bae0a071ce93f766cf05c0384d939186d0f20"></a>kSnapshotFailed&#160;</td><td class="fielddoc"><p>The process snapshot could not be captured. </p>
</td></tr>
<tr><td class="fieldname"><a id="a6fced90d0ab7cbd161db410e2609bae0a1fbf88db4d3b89b46eb4c85a8cab583e"></a>kExceptionInitializationFailed&#160;</td><td class="fielddoc"><p>The exception could not be initialized. </p>
</td></tr>
<tr><td class="fieldname"><a id="a6fced90d0ab7cbd161db410e2609bae0ae93e1e9f0645a17aa8c6d6ae018d4612"></a>kPrepareNewCrashReportFailed&#160;</td><td class="fielddoc"><p>The attempt to prepare a new crash report in the crash database failed. </p>
</td></tr>
<tr><td class="fieldname"><a id="a6fced90d0ab7cbd161db410e2609bae0a7ae8043f4b15f7e8776c2cefe81e8bc2"></a>kMinidumpWriteFailed&#160;</td><td class="fielddoc"><p>Writing the minidump to disk failed. </p>
</td></tr>
<tr><td class="fieldname"><a id="a6fced90d0ab7cbd161db410e2609bae0aae18728f9fc94a20fda396dc224f5f07"></a>kFinishedWritingCrashReportFailed&#160;</td><td class="fielddoc"><p>There was a database error in attempt to complete the report. </p>
</td></tr>
<tr><td class="fieldname"><a id="a6fced90d0ab7cbd161db410e2609bae0abc65ea024e9f639100f9b1d1034487b7"></a>kDirectPtraceFailed&#160;</td><td class="fielddoc"><p>An attempt to directly <code>ptrace</code> the target failed. </p>
<p>This value is only used on Linux/Android. </p>
</td></tr>
<tr><td class="fieldname"><a id="a6fced90d0ab7cbd161db410e2609bae0a5f47416afef7b590075930756d1972a5"></a>kBrokeredPtraceFailed&#160;</td><td class="fielddoc"><p>An attempt to <code>ptrace</code> via a <a class="el" href="classcrashpad_1_1PtraceBroker.html" title="Implements a PtraceConnection over a socket. ">PtraceBroker</a> failed. </p>
<p>This value is only used on Linux/Android. </p>
</td></tr>
<tr><td class="fieldname"><a id="a6fced90d0ab7cbd161db410e2609bae0aca62111cd97f472178ffac8837ee49fa"></a>kSanitizationInitializationFailed&#160;</td><td class="fielddoc"><p>Sanitization was requested but could not be initialized. </p>
</td></tr>
<tr><td class="fieldname"><a id="a6fced90d0ab7cbd161db410e2609bae0a8e3e0ce046ab2a13418d8f70a5b9b56a"></a>kSkippedDueToSanitization&#160;</td><td class="fielddoc"><p>Sanitization caused this crash dump to be skipped. </p>
</td></tr>
<tr><td class="fieldname"><a id="a6fced90d0ab7cbd161db410e2609bae0aa4f5363ade31fbbf363aea06f528c379"></a>kMaxValue&#160;</td><td class="fielddoc"><p>The number of values in this enumeration; not a valid value. </p>
</td></tr>
</table>
</div>
</div>
<a id="aa27da6c2bda5b2982fcb636786053c0d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa27da6c2bda5b2982fcb636786053c0d">&#9670;&nbsp;</a></span>CrashSkippedReason</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="classcrashpad_1_1Metrics.html#aa27da6c2bda5b2982fcb636786053c0d">crashpad::Metrics::CrashSkippedReason</a> : int32_t</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">strong</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Values for <a class="el" href="classcrashpad_1_1Metrics.html#a5b33698eb945386fff7950bb22225e13" title="Reports when a report is moved to the completed state in the database, without the report being uploa...">CrashUploadSkipped()</a>. </p>
<dl class="section note"><dt>Note</dt><dd>These are used as metrics enumeration values, so new values should always be added at the end, before <a class="el" href="classcrashpad_1_1Metrics.html#aa27da6c2bda5b2982fcb636786053c0daa4f5363ade31fbbf363aea06f528c379" title="The number of values in this enumeration; not a valid value. ">CrashSkippedReason::kMaxValue</a>. </dd></dl>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="aa27da6c2bda5b2982fcb636786053c0daded15858e05b0ca45c7818d05633b712"></a>kUploadsDisabled&#160;</td><td class="fielddoc"><p>Crash uploading is disabled. </p>
</td></tr>
<tr><td class="fieldname"><a id="aa27da6c2bda5b2982fcb636786053c0daf56ebc7ac73a51030b2a7f559febca48"></a>kUploadThrottled&#160;</td><td class="fielddoc"><p>There was another upload too recently, so this one was throttled. </p>
</td></tr>
<tr><td class="fieldname"><a id="aa27da6c2bda5b2982fcb636786053c0da8e8cacb37d44037058dd0fc3af0bdb79"></a>kUnexpectedTime&#160;</td><td class="fielddoc"><p>The report had an unexpected timestamp. </p>
</td></tr>
<tr><td class="fieldname"><a id="aa27da6c2bda5b2982fcb636786053c0dad63d59e7b5005387fc91091497d1d355"></a>kDatabaseError&#160;</td><td class="fielddoc"><p>The database reported an error, likely due to a filesystem problem. </p>
</td></tr>
<tr><td class="fieldname"><a id="aa27da6c2bda5b2982fcb636786053c0da5f9cc2ddfbf439b075fd747b3c1433ee"></a>kUploadFailed&#160;</td><td class="fielddoc"><p>The upload of the crash failed during communication with the server. </p>
</td></tr>
<tr><td class="fieldname"><a id="aa27da6c2bda5b2982fcb636786053c0da1f29b75ea3b099ec5dbf6bd5dfc9b33a"></a>kPrepareForUploadFailed&#160;</td><td class="fielddoc"><p>There was an error between accessing the report from the database and uploading it to the crash server. </p>
</td></tr>
<tr><td class="fieldname"><a id="aa27da6c2bda5b2982fcb636786053c0daa4f5363ade31fbbf363aea06f528c379"></a>kMaxValue&#160;</td><td class="fielddoc"><p>The number of values in this enumeration; not a valid value. </p>
</td></tr>
</table>
</div>
</div>
<a id="a14f5476a370951cfeaa514c3eea6226d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a14f5476a370951cfeaa514c3eea6226d">&#9670;&nbsp;</a></span>LifetimeMilestone</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="classcrashpad_1_1Metrics.html#a14f5476a370951cfeaa514c3eea6226d">crashpad::Metrics::LifetimeMilestone</a> : int32_t</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">strong</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>An important event in a handler process’ lifetime. </p>
<dl class="section note"><dt>Note</dt><dd>These are used as metrics enumeration values, so new values should always be added at the end, before <a class="el" href="classcrashpad_1_1Metrics.html#a14f5476a370951cfeaa514c3eea6226daa4f5363ade31fbbf363aea06f528c379" title="The number of values in this enumeration; not a valid value. ">LifetimeMilestone::kMaxValue</a>. </dd></dl>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="a14f5476a370951cfeaa514c3eea6226dad34779b690924f0107b7e9461bf3d1d4"></a>kStarted&#160;</td><td class="fielddoc"><p>The handler process started. </p>
</td></tr>
<tr><td class="fieldname"><a id="a14f5476a370951cfeaa514c3eea6226da1137296b9c5712aa1a6df94fe2aed696"></a>kExitedNormally&#160;</td><td class="fielddoc"><p>The handler process exited normally and cleanly. </p>
</td></tr>
<tr><td class="fieldname"><a id="a14f5476a370951cfeaa514c3eea6226dad74564c1b0dabe1190991e276b5e4184"></a>kExitedEarly&#160;</td><td class="fielddoc"><p>The handler process exited early, but was successful in performing some non-default action on user request. </p>
</td></tr>
<tr><td class="fieldname"><a id="a14f5476a370951cfeaa514c3eea6226dab62fa3c9492b6dae76c23d6dfa466611"></a>kFailed&#160;</td><td class="fielddoc"><p>The handler process exited with a failure code. </p>
</td></tr>
<tr><td class="fieldname"><a id="a14f5476a370951cfeaa514c3eea6226da790ff187421ccafd6083c04549b89602"></a>kTerminated&#160;</td><td class="fielddoc"><p>The handler process was forcibly terminated. </p>
</td></tr>
<tr><td class="fieldname"><a id="a14f5476a370951cfeaa514c3eea6226da06b469d66b9c47ebd59e7fc2481c884a"></a>kCrashed&#160;</td><td class="fielddoc"><p>The handler process crashed. </p>
</td></tr>
<tr><td class="fieldname"><a id="a14f5476a370951cfeaa514c3eea6226daa4f5363ade31fbbf363aea06f528c379"></a>kMaxValue&#160;</td><td class="fielddoc"><p>The number of values in this enumeration; not a valid value. </p>
</td></tr>
</table>
</div>
</div>
<a id="a5881f58aa7bb94bd82677670dbdbac06"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5881f58aa7bb94bd82677670dbdbac06">&#9670;&nbsp;</a></span>PendingReportReason</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="classcrashpad_1_1Metrics.html#a5881f58aa7bb94bd82677670dbdbac06">crashpad::Metrics::PendingReportReason</a> : int32_t</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">strong</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Values for <a class="el" href="classcrashpad_1_1Metrics.html#a634e86f4867b8649c1f0cab69b45d9e7" title="Reports when a crash upload has entered the pending state. ">CrashReportPending()</a>. </p>
<dl class="section note"><dt>Note</dt><dd>These are used as metrics enumeration values, so new values should always be added at the end, before <a class="el" href="classcrashpad_1_1Metrics.html#a5881f58aa7bb94bd82677670dbdbac06aa4f5363ade31fbbf363aea06f528c379" title="The number of values in this enumeration; not a valid value. ">PendingReportReason::kMaxValue</a>. </dd></dl>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="a5881f58aa7bb94bd82677670dbdbac06a4442bdf2002e3c9c1b40c71823d78e8c"></a>kNewlyCreated&#160;</td><td class="fielddoc"><p>A report was newly created and is ready for upload. </p>
</td></tr>
<tr><td class="fieldname"><a id="a5881f58aa7bb94bd82677670dbdbac06a40613dd8571d0348aa8ce99984132acf"></a>kUserInitiated&#160;</td><td class="fielddoc"><p>The user manually requested the report be uploaded. </p>
</td></tr>
<tr><td class="fieldname"><a id="a5881f58aa7bb94bd82677670dbdbac06aa4f5363ade31fbbf363aea06f528c379"></a>kMaxValue&#160;</td><td class="fielddoc"><p>The number of values in this enumeration; not a valid value. </p>
</td></tr>
</table>
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a2155b6349b1a852a951394a3169a2cb3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2155b6349b1a852a951394a3169a2cb3">&#9670;&nbsp;</a></span>ExceptionCode()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void crashpad::Metrics::ExceptionCode </td>
<td>(</td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>exception_code</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>The exception code for an exception was retrieved. </p>
<p>These values are OS-specific, and correspond to <a class="el" href="structMINIDUMP__EXCEPTION.html#ab6a3e2b22e571abef6c879eed52d292e" title="The top-level exception code identifying the exception, in operating system-specific values...">MINIDUMP_EXCEPTION::ExceptionCode</a>. </p>
</div>
</div>
<a id="a414d83c6d5eeb481ae1c6d9c01692565"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a414d83c6d5eeb481ae1c6d9c01692565">&#9670;&nbsp;</a></span>HandlerCrashed()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void crashpad::Metrics::HandlerCrashed </td>
<td>(</td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>exception_code</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>The handler process crashed with the given exception code. </p>
<p>This is currently only reported on Windows. </p>
</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li>util/misc/metrics.h</li>
<li>util/misc/metrics.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>