blob: b1d288bbf57c94cf0b7c05113e02376fad8e00ce [file] [log] [blame]
<!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 Namespace 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><!-- top -->
<div class="header">
<div class="summary">
<a href="#namespaces">Namespaces</a> &#124;
<a href="#nested-classes">Classes</a> &#124;
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#enum-members">Enumerations</a> &#124;
<a href="#func-members">Functions</a> &#124;
<a href="#var-members">Variables</a> </div>
<div class="headertitle">
<div class="title">crashpad Namespace Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>The main namespace.
<a href="namespacecrashpad.html#details">More...</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:namespacecrashpad_1_1internal"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad_1_1internal.html">internal</a></td></tr>
<tr class="memdesc:namespacecrashpad_1_1internal"><td class="mdescLeft">&#160;</td><td class="mdescRight">The internal namespace, not for public use. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:namespacecrashpad_1_1test"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad_1_1test.html">test</a></td></tr>
<tr class="memdesc:namespacecrashpad_1_1test"><td class="mdescLeft">&#160;</td><td class="mdescRight">The testing namespace, for use in test code only. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1AgePruneCondition.html">AgePruneCondition</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A <a class="el" href="classcrashpad_1_1PruneCondition.html" title="An abstract base class for evaluating crash reports for deletion.">PruneCondition</a> that deletes reports older than the specified number days. <a href="classcrashpad_1_1AgePruneCondition.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcrashpad_1_1AlignedAllocator.html">AlignedAllocator</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A standard allocator that aligns its allocations as requested, suitable for use as an allocator in standard containers. <a href="structcrashpad_1_1AlignedAllocator.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1Annotation.html">Annotation</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Base class for an annotation, which records a name-value pair of arbitrary data when set. <a href="classcrashpad_1_1Annotation.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1AnnotationList.html">AnnotationList</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A list that contains all the currently set annotations. <a href="classcrashpad_1_1AnnotationList.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcrashpad_1_1AnnotationSnapshot.html">AnnotationSnapshot</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1AuxiliaryVector.html">AuxiliaryVector</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Read the auxiliary vector for a target process. <a href="classcrashpad_1_1AuxiliaryVector.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1Base94OutputStream.html">Base94OutputStream</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">This class implements Base94 encoding/decoding, it uses all printable characters except space for encoding, and no padding is required. <a href="classcrashpad_1_1Base94OutputStream.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1BinaryPruneCondition.html">BinaryPruneCondition</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A <a class="el" href="classcrashpad_1_1PruneCondition.html" title="An abstract base class for evaluating crash reports for deletion.">PruneCondition</a> that conjoins two other PruneConditions. <a href="classcrashpad_1_1BinaryPruneCondition.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1CheckedRange.html">CheckedRange</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Ensures that a range, composed of a base and size, does not overflow its data type. <a href="classcrashpad_1_1CheckedRange.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1ChildPortHandshake.html">ChildPortHandshake</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implements a handshake protocol that allows processes to exchange port rights. <a href="classcrashpad_1_1ChildPortHandshake.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1ChildPortServer.html">ChildPortServer</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A server interface for the <code>child_port</code> Mach subsystem. <a href="classcrashpad_1_1ChildPortServer.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcrashpad_1_1ClientToServerMessage.html">ClientToServerMessage</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">The message passed from client to server by <a class="el" href="namespacecrashpad.html#a638d7916642f81df8063d300f08ff2ca" title="Connect over the given pipe_name, passing message to the server, storing the server&#39;s reply into resp...">SendToCrashHandlerServer()</a>. <a href="structcrashpad_1_1ClientToServerMessage.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcrashpad_1_1CodeViewRecordBuildID.html">CodeViewRecordBuildID</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A CodeView record containing an ELF build-id. <a href="structcrashpad_1_1CodeViewRecordBuildID.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcrashpad_1_1CodeViewRecordPDB20.html">CodeViewRecordPDB20</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A CodeView record linking to a <code>.pdb</code> 2.0 file. <a href="structcrashpad_1_1CodeViewRecordPDB20.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcrashpad_1_1CodeViewRecordPDB70.html">CodeViewRecordPDB70</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A CodeView record linking to a <code>.pdb</code> 7.0 file. <a href="structcrashpad_1_1CodeViewRecordPDB70.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1CompositeHTTPBodyStream.html">CompositeHTTPBodyStream</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">An implementation of <a class="el" href="classcrashpad_1_1HTTPBodyStream.html" title="An interface to a stream that can be used for an HTTP request body.">HTTPBodyStream</a> that combines an array of several other <a class="el" href="classcrashpad_1_1HTTPBodyStream.html" title="An interface to a stream that can be used for an HTTP request body.">HTTPBodyStream</a> objects into a single, unified stream. <a href="classcrashpad_1_1CompositeHTTPBodyStream.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1CompositeMachMessageServer.html">CompositeMachMessageServer</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Adapts multiple <a class="el" href="classcrashpad_1_1MachMessageServer_1_1Interface.html" title="A Mach RPC callback interface, called by Run().">MachMessageServer::Interface</a> implementations for simultaneous use in a single <a class="el" href="classcrashpad_1_1MachMessageServer.html#ace981f2e495984f119aa074f7d33bff6" title="Runs a Mach message server to handle a Mach RPC request for MIG servers.">MachMessageServer::Run()</a> call. <a href="classcrashpad_1_1CompositeMachMessageServer.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcrashpad_1_1CPUContext.html">CPUContext</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A context structure capable of carrying the context of any supported CPU architecture. <a href="structcrashpad_1_1CPUContext.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcrashpad_1_1CPUContextARM.html">CPUContextARM</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A context structure carrying ARM CPU state. <a href="structcrashpad_1_1CPUContextARM.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcrashpad_1_1CPUContextARM64.html">CPUContextARM64</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A context structure carrying ARM64 CPU state. <a href="structcrashpad_1_1CPUContextARM64.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcrashpad_1_1CPUContextMIPS.html">CPUContextMIPS</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A context structure carrying MIPS CPU state. <a href="structcrashpad_1_1CPUContextMIPS.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcrashpad_1_1CPUContextMIPS64.html">CPUContextMIPS64</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A context structure carrying MIPS64 CPU state. <a href="structcrashpad_1_1CPUContextMIPS64.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcrashpad_1_1CPUContextX86.html">CPUContextX86</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A context structure carrying 32-bit x86 CPU state. <a href="structcrashpad_1_1CPUContextX86.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcrashpad_1_1CPUContextX86__64.html">CPUContextX86_64</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A context structure carrying x86_64 CPU state. <a href="structcrashpad_1_1CPUContextX86__64.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1CrashpadClient.html">CrashpadClient</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">The primary interface for an application to have Crashpad monitor it for crashes. <a href="classcrashpad_1_1CrashpadClient.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcrashpad_1_1CrashpadInfo.html">CrashpadInfo</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A structure that can be used by a Crashpad-enabled program to provide information to the Crashpad crash handler. <a href="structcrashpad_1_1CrashpadInfo.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcrashpad_1_1CrashpadInfoClientOptions.html">CrashpadInfoClientOptions</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Options represented in a client’s <a class="el" href="structcrashpad_1_1CrashpadInfo.html" title="A structure that can be used by a Crashpad-enabled program to provide information to the Crashpad cra...">CrashpadInfo</a> structure. <a href="structcrashpad_1_1CrashpadInfoClientOptions.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1CrashpadInfoReader.html">CrashpadInfoReader</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads <a class="el" href="structcrashpad_1_1CrashpadInfo.html" title="A structure that can be used by a Crashpad-enabled program to provide information to the Crashpad cra...">CrashpadInfo</a> structs from another process via a <a class="el" href="classcrashpad_1_1ProcessMemoryRange.html" title="Provides range protected access to the memory of another process.">ProcessMemoryRange</a>. <a href="classcrashpad_1_1CrashpadInfoReader.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1CrashReportDatabase.html">CrashReportDatabase</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">An interface for managing a collection of crash report files and metadata associated with the crash reports. <a href="classcrashpad_1_1CrashReportDatabase.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1CrashReportDatabaseGeneric.html">CrashReportDatabaseGeneric</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1CrashReportDatabaseMac.html">CrashReportDatabaseMac</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A <a class="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> that uses HFS+ extended attributes to store report metadata. <a href="classcrashpad_1_1CrashReportDatabaseMac.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1CrashReportDatabaseWin.html">CrashReportDatabaseWin</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1CrashReportExceptionHandler.html">CrashReportExceptionHandler</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">An exception handler that writes crash reports for exceptions to a <a class="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>. <a href="classcrashpad_1_1CrashReportExceptionHandler.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1CrashReportUploadThread.html">CrashReportUploadThread</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A thread that processes pending crash reports in a <a class="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> by uploading them or marking them as completed without upload, as desired. <a href="classcrashpad_1_1CrashReportUploadThread.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1CrosCrashReportExceptionHandler.html">CrosCrashReportExceptionHandler</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">An exception handler that writes crash reports to the ChromeOS crash_reporter. <a href="classcrashpad_1_1CrosCrashReportExceptionHandler.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1DatabaseSizePruneCondition.html">DatabaseSizePruneCondition</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A <a class="el" href="classcrashpad_1_1PruneCondition.html" title="An abstract base class for evaluating crash reports for deletion.">PruneCondition</a> that deletes older reports to keep the total Crashpad database size under the specified limit. <a href="classcrashpad_1_1DatabaseSizePruneCondition.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1DebugRendezvous.html">DebugRendezvous</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads an <code>r_debug</code> struct defined in <code>&lt;link.h&gt;</code> via <a class="el" href="classcrashpad_1_1ProcessMemoryRange.html" title="Provides range protected access to the memory of another process.">ProcessMemoryRange</a>. <a href="classcrashpad_1_1DebugRendezvous.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1DelimitedFileReader.html">DelimitedFileReader</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads a file one field or line at a time. <a href="classcrashpad_1_1DelimitedFileReader.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1DirectoryReader.html">DirectoryReader</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Iterates over the file and directory names in a directory. <a href="classcrashpad_1_1DirectoryReader.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1DirectPtraceConnection.html">DirectPtraceConnection</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Manages a direct <code>ptrace</code> connection to a process. <a href="classcrashpad_1_1DirectPtraceConnection.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1ElfDynamicArrayReader.html">ElfDynamicArrayReader</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A reader for ELF dynamic arrays mapped into another process. <a href="classcrashpad_1_1ElfDynamicArrayReader.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1ElfImageReader.html">ElfImageReader</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A reader for ELF images mapped into another process. <a href="classcrashpad_1_1ElfImageReader.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1ElfSymbolTableReader.html">ElfSymbolTableReader</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A reader for symbol tables in ELF images mapped into another process. <a href="classcrashpad_1_1ElfSymbolTableReader.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1ExceptionHandlerClient.html">ExceptionHandlerClient</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A client for an <a class="el" href="classcrashpad_1_1ExceptionHandlerServer.html" title="Runs the main exception-handling server in Crashpad’s handler process.">ExceptionHandlerServer</a>. <a href="classcrashpad_1_1ExceptionHandlerClient.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1ExceptionHandlerProtocol.html">ExceptionHandlerProtocol</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1ExceptionHandlerServer.html">ExceptionHandlerServer</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Runs the main exception-handling server in Crashpad’s handler process. <a href="classcrashpad_1_1ExceptionHandlerServer.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcrashpad_1_1ExceptionInformation.html">ExceptionInformation</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Structure read out of the client process by the crash handler when an exception occurs. <a href="structcrashpad_1_1ExceptionInformation.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1ExceptionPorts.html">ExceptionPorts</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A better interface to <code>*_get_exception_ports()</code> and <code>*_set_exception_ports()</code>. <a href="classcrashpad_1_1ExceptionPorts.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1ExceptionSnapshot.html">ExceptionSnapshot</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">An abstract interface to a snapshot representing an exception that a snapshot process sustained and triggered the snapshot being taken. <a href="classcrashpad_1_1ExceptionSnapshot.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1FileEncoder.html">FileEncoder</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">The class is used to compress and base94-encode, or base94-decode and decompress the given input file to the output file. <a href="classcrashpad_1_1FileEncoder.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1FileOutputStream.html">FileOutputStream</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">The class is used to write data to a file. <a href="classcrashpad_1_1FileOutputStream.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1FileReader.html">FileReader</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A file reader implementation that wraps traditional system file operations on files accessed through the filesystem. <a href="classcrashpad_1_1FileReader.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1FileReaderHTTPBodyStream.html">FileReaderHTTPBodyStream</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">An implementation of <a class="el" href="classcrashpad_1_1HTTPBodyStream.html" title="An interface to a stream that can be used for an HTTP request body.">HTTPBodyStream</a> that reads from a <a class="el" href="classcrashpad_1_1FileReaderInterface.html" title="An interface to read to files and other file-like objects with semantics matching the underlying plat...">FileReaderInterface</a> and provides its contents for an HTTP body. <a href="classcrashpad_1_1FileReaderHTTPBodyStream.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1FileReaderInterface.html">FileReaderInterface</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">An interface to read to files and other file-like objects with semantics matching the underlying platform (POSIX or Windows). <a href="classcrashpad_1_1FileReaderInterface.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1FileSeekerInterface.html">FileSeekerInterface</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">An interface to seek in files and other file-like objects with semantics matching the underlying platform (POSIX or Windows). <a href="classcrashpad_1_1FileSeekerInterface.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1FileWriter.html">FileWriter</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A file writer implementation that wraps traditional system file operations on files accessed through the filesystem. <a href="classcrashpad_1_1FileWriter.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1FileWriterInterface.html">FileWriterInterface</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">An interface to write to files and other file-like objects with semantics matching the underlying platform (POSIX or Windows). <a href="classcrashpad_1_1FileWriterInterface.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">union &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="unioncrashpad_1_1FloatContext.html">FloatContext</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">The floating point registers used for an architecture family. <a href="unioncrashpad_1_1FloatContext.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1GzipHTTPBodyStream.html">GzipHTTPBodyStream</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">An implementation of <a class="el" href="classcrashpad_1_1HTTPBodyStream.html" title="An interface to a stream that can be used for an HTTP request body.">HTTPBodyStream</a> that <code>gzip</code>-compresses another <a class="el" href="classcrashpad_1_1HTTPBodyStream.html" title="An interface to a stream that can be used for an HTTP request body.">HTTPBodyStream</a>. <a href="classcrashpad_1_1GzipHTTPBodyStream.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcrashpad_1_1HandleSnapshot.html">HandleSnapshot</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1HTTPBodyStream.html">HTTPBodyStream</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">An interface to a stream that can be used for an HTTP request body. <a href="classcrashpad_1_1HTTPBodyStream.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1HTTPMultipartBuilder.html">HTTPMultipartBuilder</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">This class is used to build a MIME multipart message, conforming to RFC 2046, for use as a HTTP request body. <a href="classcrashpad_1_1HTTPMultipartBuilder.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1HTTPTransport.html">HTTPTransport</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classcrashpad_1_1HTTPTransport.html" title="HTTPTransport executes a HTTP request using the specified URL, HTTP method, headers,...">HTTPTransport</a> executes a HTTP request using the specified URL, HTTP method, headers, and body. This class can only issue a synchronous HTTP request. <a href="classcrashpad_1_1HTTPTransport.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1ImageAnnotationReader.html">ImageAnnotationReader</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads Annotations from another process via a <a class="el" href="classcrashpad_1_1ProcessMemoryRange.html" title="Provides range protected access to the memory of another process.">ProcessMemoryRange</a>. <a href="classcrashpad_1_1ImageAnnotationReader.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1InitialClientData.html">InitialClientData</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A container for the data associated with the <code>--initial-client-data</code> method for initializing the handler process on Windows. <a href="classcrashpad_1_1InitialClientData.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1InitializationState.html">InitializationState</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Tracks whether data are initialized. <a href="classcrashpad_1_1InitializationState.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1InitializationStateDcheck.html">InitializationStateDcheck</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Tracks whether data are initialized, triggering a DCHECK assertion on an invalid data access. <a href="classcrashpad_1_1InitializationStateDcheck.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1IOSSystemDataCollector.html">IOSSystemDataCollector</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Used to collect system level data before a crash occurs. <a href="classcrashpad_1_1IOSSystemDataCollector.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1LogOutputStream.html">LogOutputStream</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">This class output the received data to Android log, NOP in other platform. <a href="classcrashpad_1_1LogOutputStream.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1MachMessageServer.html">MachMessageServer</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Runs a Mach message server to handle a Mach RPC request for MIG servers. <a href="classcrashpad_1_1MachMessageServer.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1MachOImageAnnotationsReader.html">MachOImageAnnotationsReader</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A reader for annotations stored in a Mach-O image mapped into another process. <a href="classcrashpad_1_1MachOImageAnnotationsReader.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1MachOImageReader.html">MachOImageReader</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A reader for Mach-O images mapped into another process. <a href="classcrashpad_1_1MachOImageReader.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1MachOImageSegmentReader.html">MachOImageSegmentReader</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A reader for <code>LC_SEGMENT</code> or <code>LC_SEGMENT_64</code> load commands in Mach-O images mapped into another process. <a href="classcrashpad_1_1MachOImageSegmentReader.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1MachOImageSymbolTableReader.html">MachOImageSymbolTableReader</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A reader for symbol tables in Mach-O images mapped into another process. <a href="classcrashpad_1_1MachOImageSymbolTableReader.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1MemoryMap.html">MemoryMap</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Accesses information about mapped memory in another process. <a href="classcrashpad_1_1MemoryMap.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1MemoryMapFuchsia.html">MemoryMapFuchsia</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A list of mappings in the address space of a Fuchsia process. <a href="classcrashpad_1_1MemoryMapFuchsia.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1MemoryMapRegionSnapshot.html">MemoryMapRegionSnapshot</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">An abstract interface to a snapshot representing a region of the memory map present in the snapshot process. <a href="classcrashpad_1_1MemoryMapRegionSnapshot.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1MemorySnapshot.html">MemorySnapshot</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">An abstract interface to a snapshot representing a region of memory present in a snapshot process. <a href="classcrashpad_1_1MemorySnapshot.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1Metrics.html">Metrics</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Container class to hold shared UMA metrics integration points. <a href="classcrashpad_1_1Metrics.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcrashpad_1_1MinidumpAnnotation.html">MinidumpAnnotation</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A typed annotation object. <a href="structcrashpad_1_1MinidumpAnnotation.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcrashpad_1_1MinidumpAnnotationList.html">MinidumpAnnotationList</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A list of annotation objects. <a href="structcrashpad_1_1MinidumpAnnotationList.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1MinidumpAnnotationListWriter.html">MinidumpAnnotationListWriter</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">The writer for a <a class="el" href="structcrashpad_1_1MinidumpAnnotationList.html" title="A list of annotation objects.">MinidumpAnnotationList</a> object in a minidump file, containing a list of <a class="el" href="structcrashpad_1_1MinidumpAnnotation.html" title="A typed annotation object.">MinidumpAnnotation</a> objects. <a href="classcrashpad_1_1MinidumpAnnotationListWriter.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1MinidumpAnnotationWriter.html">MinidumpAnnotationWriter</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">The writer for a <a class="el" href="structcrashpad_1_1MinidumpAnnotation.html" title="A typed annotation object.">MinidumpAnnotation</a> object in a minidump file. <a href="classcrashpad_1_1MinidumpAnnotationWriter.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcrashpad_1_1MinidumpByteArray.html">MinidumpByteArray</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A variable-length array of bytes carried within a minidump file. The data have no intrinsic type and should be interpreted according to their referencing context. <a href="structcrashpad_1_1MinidumpByteArray.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1MinidumpByteArrayWriter.html">MinidumpByteArrayWriter</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Writes a variable-length byte array for a minidump into a. <a href="classcrashpad_1_1MinidumpByteArrayWriter.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcrashpad_1_1MinidumpContextAMD64.html">MinidumpContextAMD64</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">An x86_64 (AMD64) CPU context (register state) carried in a minidump file. <a href="structcrashpad_1_1MinidumpContextAMD64.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1MinidumpContextAMD64Writer.html">MinidumpContextAMD64Writer</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">The writer for a <a class="el" href="structcrashpad_1_1MinidumpContextAMD64.html" title="An x86_64 (AMD64) CPU context (register state) carried in a minidump file.">MinidumpContextAMD64</a> structure in a minidump file. <a href="classcrashpad_1_1MinidumpContextAMD64Writer.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcrashpad_1_1MinidumpContextARM.html">MinidumpContextARM</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A 32-bit ARM CPU context (register state) carried in a minidump file. <a href="structcrashpad_1_1MinidumpContextARM.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcrashpad_1_1MinidumpContextARM64.html">MinidumpContextARM64</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A 64-bit ARM CPU context (register state) carried in a minidump file. <a href="structcrashpad_1_1MinidumpContextARM64.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1MinidumpContextARM64Writer.html">MinidumpContextARM64Writer</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">The writer for a <a class="el" href="structcrashpad_1_1MinidumpContextARM64.html" title="A 64-bit ARM CPU context (register state) carried in a minidump file.">MinidumpContextARM64</a> structure in a minidump file. <a href="classcrashpad_1_1MinidumpContextARM64Writer.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1MinidumpContextARMWriter.html">MinidumpContextARMWriter</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">The writer for a <a class="el" href="structcrashpad_1_1MinidumpContextARM.html" title="A 32-bit ARM CPU context (register state) carried in a minidump file.">MinidumpContextARM</a> structure in a minidump file. <a href="classcrashpad_1_1MinidumpContextARMWriter.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcrashpad_1_1MinidumpContextMIPS.html">MinidumpContextMIPS</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A 32bit MIPS CPU context (register state) carried in a minidump file. <a href="structcrashpad_1_1MinidumpContextMIPS.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcrashpad_1_1MinidumpContextMIPS64.html">MinidumpContextMIPS64</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A 32bit MIPS CPU context (register state) carried in a minidump file. <a href="structcrashpad_1_1MinidumpContextMIPS64.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1MinidumpContextMIPS64Writer.html">MinidumpContextMIPS64Writer</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">The writer for a <a class="el" href="structcrashpad_1_1MinidumpContextMIPS64.html" title="A 32bit MIPS CPU context (register state) carried in a minidump file.">MinidumpContextMIPS64</a> structure in a minidump file. <a href="classcrashpad_1_1MinidumpContextMIPS64Writer.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1MinidumpContextMIPSWriter.html">MinidumpContextMIPSWriter</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">The writer for a <a class="el" href="structcrashpad_1_1MinidumpContextMIPS.html" title="A 32bit MIPS CPU context (register state) carried in a minidump file.">MinidumpContextMIPS</a> structure in a minidump file. <a href="classcrashpad_1_1MinidumpContextMIPSWriter.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1MinidumpContextWriter.html">MinidumpContextWriter</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">The base class for writers of CPU context structures in minidump files. <a href="classcrashpad_1_1MinidumpContextWriter.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcrashpad_1_1MinidumpContextX86.html">MinidumpContextX86</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A 32-bit x86 CPU context (register state) carried in a minidump file. <a href="structcrashpad_1_1MinidumpContextX86.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1MinidumpContextX86Writer.html">MinidumpContextX86Writer</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">The writer for a <a class="el" href="structcrashpad_1_1MinidumpContextX86.html" title="A 32-bit x86 CPU context (register state) carried in a minidump file.">MinidumpContextX86</a> structure in a minidump file. <a href="classcrashpad_1_1MinidumpContextX86Writer.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcrashpad_1_1MinidumpCrashpadInfo.html">MinidumpCrashpadInfo</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Additional Crashpad-specific information carried within a minidump file. <a href="structcrashpad_1_1MinidumpCrashpadInfo.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1MinidumpCrashpadInfoWriter.html">MinidumpCrashpadInfoWriter</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">The writer for a <a class="el" href="structcrashpad_1_1MinidumpCrashpadInfo.html" title="Additional Crashpad-specific information carried within a minidump file.">MinidumpCrashpadInfo</a> stream in a minidump file. <a href="classcrashpad_1_1MinidumpCrashpadInfoWriter.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1MinidumpExceptionWriter.html">MinidumpExceptionWriter</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">The writer for a <a class="el" href="structMINIDUMP__EXCEPTION__STREAM.html" title="Information about the exception that triggered a minidump file’s generation.">MINIDUMP_EXCEPTION_STREAM</a> stream in a minidump file. <a href="classcrashpad_1_1MinidumpExceptionWriter.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1MinidumpFileWriter.html">MinidumpFileWriter</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">The root-level object in a minidump file. <a href="classcrashpad_1_1MinidumpFileWriter.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1MinidumpHandleDataWriter.html">MinidumpHandleDataWriter</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">The writer for a MINIDUMP_HANDLE_DATA_STREAM stream in a minidump and its contained <a class="el" href="structMINIDUMP__HANDLE__DESCRIPTOR.html" title="Contains the state of an individual system handle at the time the snapshot was taken....">MINIDUMP_HANDLE_DESCRIPTOR</a> s. <a href="classcrashpad_1_1MinidumpHandleDataWriter.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1MinidumpMemoryInfoListWriter.html">MinidumpMemoryInfoListWriter</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">The writer for a <a class="el" href="structMINIDUMP__MEMORY__INFO__LIST.html" title="Contains a list of memory regions.">MINIDUMP_MEMORY_INFO_LIST</a> stream in a minidump file, containing a list of <a class="el" href="structMINIDUMP__MEMORY__INFO.html" title="Describes a region of memory.">MINIDUMP_MEMORY_INFO</a> objects. <a href="classcrashpad_1_1MinidumpMemoryInfoListWriter.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1MinidumpMemoryListWriter.html">MinidumpMemoryListWriter</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">The writer for a <a class="el" href="structMINIDUMP__MEMORY__LIST.html" title="Information about memory regions within the process.">MINIDUMP_MEMORY_LIST</a> stream in a minidump file, containing a list of <a class="el" href="structMINIDUMP__MEMORY__DESCRIPTOR.html" title="A pointer to a snapshot of a region of memory contained within a minidump file.">MINIDUMP_MEMORY_DESCRIPTOR</a> objects. <a href="classcrashpad_1_1MinidumpMemoryListWriter.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1MinidumpMiscInfoWriter.html">MinidumpMiscInfoWriter</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">The writer for a stream in the <a class="el" href="structMINIDUMP__MISC__INFO.html" title="Information about the process that the minidump file contains a snapshot of, as well as the system th...">MINIDUMP_MISC_INFO</a> family in a minidump file. <a href="classcrashpad_1_1MinidumpMiscInfoWriter.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1MinidumpModuleCodeViewRecordBuildIDWriter.html">MinidumpModuleCodeViewRecordBuildIDWriter</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">The writer for a <a class="el" href="structcrashpad_1_1CodeViewRecordBuildID.html" title="A CodeView record containing an ELF build-id.">CodeViewRecordBuildID</a> object in a minidump file. <a href="classcrashpad_1_1MinidumpModuleCodeViewRecordBuildIDWriter.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1MinidumpModuleCodeViewRecordPDB20Writer.html">MinidumpModuleCodeViewRecordPDB20Writer</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">The writer for a <a class="el" href="structcrashpad_1_1CodeViewRecordPDB20.html" title="A CodeView record linking to a .pdb 2.0 file.">CodeViewRecordPDB20</a> object in a minidump file. <a href="classcrashpad_1_1MinidumpModuleCodeViewRecordPDB20Writer.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1MinidumpModuleCodeViewRecordPDB70Writer.html">MinidumpModuleCodeViewRecordPDB70Writer</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">The writer for a <a class="el" href="structcrashpad_1_1CodeViewRecordPDB70.html" title="A CodeView record linking to a .pdb 7.0 file.">CodeViewRecordPDB70</a> object in a minidump file. <a href="classcrashpad_1_1MinidumpModuleCodeViewRecordPDB70Writer.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1MinidumpModuleCodeViewRecordWriter.html">MinidumpModuleCodeViewRecordWriter</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">The base class for writers of CodeView records referenced by <a class="el" href="structMINIDUMP__MODULE.html#acd07e35faf066880eeabea8a91aa887a" title="A pointer to the module’s CodeView record, typically a link to its debugging information in crashpad:...">MINIDUMP_MODULE::CvRecord</a> in minidump files. <a href="classcrashpad_1_1MinidumpModuleCodeViewRecordWriter.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcrashpad_1_1MinidumpModuleCrashpadInfo.html">MinidumpModuleCrashpadInfo</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Additional Crashpad-specific information about a module carried within a minidump file. <a href="structcrashpad_1_1MinidumpModuleCrashpadInfo.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcrashpad_1_1MinidumpModuleCrashpadInfoLink.html">MinidumpModuleCrashpadInfoLink</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A link between a <a class="el" href="structMINIDUMP__MODULE.html" title="Information about a specific module loaded within the process at the time the snapshot was taken.">MINIDUMP_MODULE</a> structure and additional Crashpad-specific information about a module carried within a minidump file. <a href="structcrashpad_1_1MinidumpModuleCrashpadInfoLink.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcrashpad_1_1MinidumpModuleCrashpadInfoList.html">MinidumpModuleCrashpadInfoList</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Additional Crashpad-specific information about modules carried within a minidump file. <a href="structcrashpad_1_1MinidumpModuleCrashpadInfoList.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1MinidumpModuleCrashpadInfoListWriter.html">MinidumpModuleCrashpadInfoListWriter</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">The writer for a <a class="el" href="structcrashpad_1_1MinidumpModuleCrashpadInfoList.html" title="Additional Crashpad-specific information about modules carried within a minidump file.">MinidumpModuleCrashpadInfoList</a> object in a minidump file, containing a list of <a class="el" href="structcrashpad_1_1MinidumpModuleCrashpadInfo.html" title="Additional Crashpad-specific information about a module carried within a minidump file.">MinidumpModuleCrashpadInfo</a> objects. <a href="classcrashpad_1_1MinidumpModuleCrashpadInfoListWriter.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1MinidumpModuleCrashpadInfoWriter.html">MinidumpModuleCrashpadInfoWriter</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">The writer for a <a class="el" href="structcrashpad_1_1MinidumpModuleCrashpadInfo.html" title="Additional Crashpad-specific information about a module carried within a minidump file.">MinidumpModuleCrashpadInfo</a> object in a minidump file. <a href="classcrashpad_1_1MinidumpModuleCrashpadInfoWriter.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1MinidumpModuleListWriter.html">MinidumpModuleListWriter</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">The writer for a <a class="el" href="structMINIDUMP__MODULE__LIST.html" title="Information about all modules loaded within the process at the time the snapshot was taken.">MINIDUMP_MODULE_LIST</a> stream in a minidump file, containing a list of <a class="el" href="structMINIDUMP__MODULE.html" title="Information about a specific module loaded within the process at the time the snapshot was taken.">MINIDUMP_MODULE</a> objects. <a href="classcrashpad_1_1MinidumpModuleListWriter.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1MinidumpModuleMiscDebugRecordWriter.html">MinidumpModuleMiscDebugRecordWriter</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">The writer for an <a class="el" href="structIMAGE__DEBUG__MISC.html" title="Miscellaneous debugging record.">IMAGE_DEBUG_MISC</a> object in a minidump file. <a href="classcrashpad_1_1MinidumpModuleMiscDebugRecordWriter.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1MinidumpModuleWriter.html">MinidumpModuleWriter</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">The writer for a <a class="el" href="structMINIDUMP__MODULE.html" title="Information about a specific module loaded within the process at the time the snapshot was taken.">MINIDUMP_MODULE</a> object in a minidump file. <a href="classcrashpad_1_1MinidumpModuleWriter.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcrashpad_1_1MinidumpRVAList.html">MinidumpRVAList</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A list of <a class="el" href="dbghelp_8h.html#acf465a1a77ecf067a9d946583bc6a3f8" title="An offset within a minidump file, relative to the start of its MINIDUMP_HEADER.">RVA</a> pointers. <a href="structcrashpad_1_1MinidumpRVAList.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcrashpad_1_1MinidumpSimpleStringDictionary.html">MinidumpSimpleStringDictionary</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A list of key-value pairs. <a href="structcrashpad_1_1MinidumpSimpleStringDictionary.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcrashpad_1_1MinidumpSimpleStringDictionaryEntry.html">MinidumpSimpleStringDictionaryEntry</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A key-value pair. <a href="structcrashpad_1_1MinidumpSimpleStringDictionaryEntry.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1MinidumpSimpleStringDictionaryEntryWriter.html">MinidumpSimpleStringDictionaryEntryWriter</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">The writer for a <a class="el" href="structcrashpad_1_1MinidumpSimpleStringDictionaryEntry.html" title="A key-value pair.">MinidumpSimpleStringDictionaryEntry</a> object in a minidump file. <a href="classcrashpad_1_1MinidumpSimpleStringDictionaryEntryWriter.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1MinidumpSimpleStringDictionaryWriter.html">MinidumpSimpleStringDictionaryWriter</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">The writer for a <a class="el" href="structcrashpad_1_1MinidumpSimpleStringDictionary.html" title="A list of key-value pairs.">MinidumpSimpleStringDictionary</a> object in a minidump file, containing a list of <a class="el" href="structcrashpad_1_1MinidumpSimpleStringDictionaryEntry.html" title="A key-value pair.">MinidumpSimpleStringDictionaryEntry</a> objects. <a href="classcrashpad_1_1MinidumpSimpleStringDictionaryWriter.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1MinidumpStream.html">MinidumpStream</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Stores a minidump stream along with its stream ID. <a href="classcrashpad_1_1MinidumpStream.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1MinidumpSystemInfoWriter.html">MinidumpSystemInfoWriter</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">The writer for a <a class="el" href="structMINIDUMP__SYSTEM__INFO.html" title="Information about the system that hosted the process that the minidump file contains a snapshot of.">MINIDUMP_SYSTEM_INFO</a> stream in a minidump file. <a href="classcrashpad_1_1MinidumpSystemInfoWriter.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1MinidumpThreadListWriter.html">MinidumpThreadListWriter</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">The writer for a <a class="el" href="structMINIDUMP__THREAD__LIST.html" title="Information about all threads within the process.">MINIDUMP_THREAD_LIST</a> stream in a minidump file, containing a list of <a class="el" href="structMINIDUMP__THREAD.html" title="Information about a specific thread within the process.">MINIDUMP_THREAD</a> objects. <a href="classcrashpad_1_1MinidumpThreadListWriter.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1MinidumpThreadWriter.html">MinidumpThreadWriter</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">The writer for a <a class="el" href="structMINIDUMP__THREAD.html" title="Information about a specific thread within the process.">MINIDUMP_THREAD</a> object in a minidump file. <a href="classcrashpad_1_1MinidumpThreadWriter.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1MinidumpUnloadedModuleListWriter.html">MinidumpUnloadedModuleListWriter</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">The writer for a <a class="el" href="structMINIDUMP__UNLOADED__MODULE__LIST.html" title="Information about all modules recorded as unloaded when the snapshot was taken.">MINIDUMP_UNLOADED_MODULE_LIST</a> stream in a minidump file, containing a list of <a class="el" href="structMINIDUMP__UNLOADED__MODULE.html" title="Information about a specific module that was recorded as being unloaded at the time the snapshot was ...">MINIDUMP_UNLOADED_MODULE</a> objects. <a href="classcrashpad_1_1MinidumpUnloadedModuleListWriter.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1MinidumpUnloadedModuleWriter.html">MinidumpUnloadedModuleWriter</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">The writer for a <a class="el" href="structMINIDUMP__UNLOADED__MODULE.html" title="Information about a specific module that was recorded as being unloaded at the time the snapshot was ...">MINIDUMP_UNLOADED_MODULE</a> object in a minidump file. <a href="classcrashpad_1_1MinidumpUnloadedModuleWriter.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1MinidumpUserExtensionStreamDataSource.html">MinidumpUserExtensionStreamDataSource</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Describes a user extension data stream in a minidump. <a href="classcrashpad_1_1MinidumpUserExtensionStreamDataSource.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1MinidumpUserStreamWriter.html">MinidumpUserStreamWriter</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">The writer for a MINIDUMP_USER_STREAM in a minidump file. <a href="classcrashpad_1_1MinidumpUserStreamWriter.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcrashpad_1_1MinidumpUTF8String.html">MinidumpUTF8String</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A variable-length UTF-8-encoded string carried within a minidump file. <a href="structcrashpad_1_1MinidumpUTF8String.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1ModuleSnapshot.html">ModuleSnapshot</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">An abstract interface to a snapshot representing a code module (binary image) loaded into a snapshot process. <a href="classcrashpad_1_1ModuleSnapshot.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1NotifyServer.html">NotifyServer</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A server interface for the <code>notify</code> Mach subsystem. <a href="classcrashpad_1_1NotifyServer.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1Paths.html">Paths</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Functions to obtain paths. <a href="classcrashpad_1_1Paths.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1PEImageAnnotationsReader.html">PEImageAnnotationsReader</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A reader of annotations stored in a PE image mapped into another process. <a href="classcrashpad_1_1PEImageAnnotationsReader.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1PEImageReader.html">PEImageReader</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A reader for PE images mapped into another process. <a href="classcrashpad_1_1PEImageReader.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1PEImageResourceReader.html">PEImageResourceReader</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A reader for resources stored in PE images mapped into another process. <a href="classcrashpad_1_1PEImageResourceReader.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1ProcessInfo.html">ProcessInfo</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gathers information about a process given its <code>HANDLE</code>. This consists primarily of information stored in the Process Environment Block. <a href="classcrashpad_1_1ProcessInfo.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1ProcessMemory.html">ProcessMemory</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Abstract base class for accessing the memory of another process. <a href="classcrashpad_1_1ProcessMemory.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1ProcessMemoryFuchsia.html">ProcessMemoryFuchsia</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Accesses the memory of another Fuchsia process. <a href="classcrashpad_1_1ProcessMemoryFuchsia.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1ProcessMemoryLinux.html">ProcessMemoryLinux</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Accesses the memory of another Linux process. <a href="classcrashpad_1_1ProcessMemoryLinux.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1ProcessMemoryMac.html">ProcessMemoryMac</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Accesses the memory of another Mach task. <a href="classcrashpad_1_1ProcessMemoryMac.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1ProcessMemoryRange.html">ProcessMemoryRange</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provides range protected access to the memory of another process. <a href="classcrashpad_1_1ProcessMemoryRange.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1ProcessMemorySanitized.html">ProcessMemorySanitized</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sanitized access to the memory of another process. <a href="classcrashpad_1_1ProcessMemorySanitized.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1ProcessMemoryWin.html">ProcessMemoryWin</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Accesses the memory of another Windows process. <a href="classcrashpad_1_1ProcessMemoryWin.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1ProcessReaderFuchsia.html">ProcessReaderFuchsia</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Accesses information about another process, identified by a Fuchsia process. <a href="classcrashpad_1_1ProcessReaderFuchsia.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1ProcessReaderLinux.html">ProcessReaderLinux</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Accesses information about another process, identified by a process ID. <a href="classcrashpad_1_1ProcessReaderLinux.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1ProcessReaderMac.html">ProcessReaderMac</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Accesses information about another process, identified by a Mach task. <a href="classcrashpad_1_1ProcessReaderMac.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1ProcessReaderWin.html">ProcessReaderWin</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Accesses information about another process, identified by a <code>HANDLE</code>. <a href="classcrashpad_1_1ProcessReaderWin.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1ProcessSnapshot.html">ProcessSnapshot</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">An abstract interface to a snapshot representing the state of a process. <a href="classcrashpad_1_1ProcessSnapshot.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1ProcessSnapshotFuchsia.html">ProcessSnapshotFuchsia</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A <a class="el" href="classcrashpad_1_1ProcessSnapshot.html" title="An abstract interface to a snapshot representing the state of a process.">ProcessSnapshot</a> of a running (or crashed) process running on a Fuchsia system. This class is not yet implemented. <a href="classcrashpad_1_1ProcessSnapshotFuchsia.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1ProcessSnapshotIOS.html">ProcessSnapshotIOS</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A <a class="el" href="classcrashpad_1_1ProcessSnapshot.html" title="An abstract interface to a snapshot representing the state of a process.">ProcessSnapshot</a> of a running (or crashed) process running on a iphoneOS system. <a href="classcrashpad_1_1ProcessSnapshotIOS.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1ProcessSnapshotLinux.html">ProcessSnapshotLinux</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A <a class="el" href="classcrashpad_1_1ProcessSnapshot.html" title="An abstract interface to a snapshot representing the state of a process.">ProcessSnapshot</a> of a running (or crashed) process running on a Linux system. <a href="classcrashpad_1_1ProcessSnapshotLinux.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1ProcessSnapshotMac.html">ProcessSnapshotMac</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A <a class="el" href="classcrashpad_1_1ProcessSnapshot.html" title="An abstract interface to a snapshot representing the state of a process.">ProcessSnapshot</a> of a running (or crashed) process running on a macOS system. <a href="classcrashpad_1_1ProcessSnapshotMac.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1ProcessSnapshotMinidump.html">ProcessSnapshotMinidump</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A <a class="el" href="classcrashpad_1_1ProcessSnapshot.html" title="An abstract interface to a snapshot representing the state of a process.">ProcessSnapshot</a> based on a minidump file. <a href="classcrashpad_1_1ProcessSnapshotMinidump.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1ProcessSnapshotSanitized.html">ProcessSnapshotSanitized</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A <a class="el" href="classcrashpad_1_1ProcessSnapshot.html" title="An abstract interface to a snapshot representing the state of a process.">ProcessSnapshot</a> which wraps and filters sensitive information from another <a class="el" href="classcrashpad_1_1ProcessSnapshot.html" title="An abstract interface to a snapshot representing the state of a process.">ProcessSnapshot</a>. <a href="classcrashpad_1_1ProcessSnapshotSanitized.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1ProcessSnapshotWin.html">ProcessSnapshotWin</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A <a class="el" href="classcrashpad_1_1ProcessSnapshot.html" title="An abstract interface to a snapshot representing the state of a process.">ProcessSnapshot</a> of a running (or crashed) process running on a Windows system. <a href="classcrashpad_1_1ProcessSnapshotWin.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1ProcessSubrangeReader.html">ProcessSubrangeReader</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A wrapper for <a class="el" href="classcrashpad_1_1ProcessReaderWin.html" title="Accesses information about another process, identified by a HANDLE.">ProcessReaderWin</a> that only allows a specific subrange to be read from. <a href="classcrashpad_1_1ProcessSubrangeReader.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1ProcStatReader.html">ProcStatReader</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads the /proc/[pid]/stat file for a thread. <a href="classcrashpad_1_1ProcStatReader.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1PruneCondition.html">PruneCondition</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">An abstract base class for evaluating crash reports for deletion. <a href="classcrashpad_1_1PruneCondition.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1PruneCrashReportThread.html">PruneCrashReportThread</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A thread that periodically prunes crash reports from the database using the specified condition. <a href="classcrashpad_1_1PruneCrashReportThread.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1PtraceBroker.html">PtraceBroker</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implements a <a class="el" href="classcrashpad_1_1PtraceConnection.html" title="Provides an interface for making ptrace requests against a process and its threads.">PtraceConnection</a> over a socket. <a href="classcrashpad_1_1PtraceBroker.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1PtraceClient.html">PtraceClient</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implements a <a class="el" href="classcrashpad_1_1PtraceConnection.html" title="Provides an interface for making ptrace requests against a process and its threads.">PtraceConnection</a> over a socket. <a href="classcrashpad_1_1PtraceClient.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1PtraceConnection.html">PtraceConnection</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provides an interface for making <code>ptrace</code> requests against a process and its threads. <a href="classcrashpad_1_1PtraceConnection.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1Ptracer.html">Ptracer</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provides an architecturally agnostic interface for collecting information with <code>ptrace</code>. <a href="classcrashpad_1_1Ptracer.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1PtraceStrategyDecider.html">PtraceStrategyDecider</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Abstract base class for deciding how the handler should <code>ptrace</code> a client. <a href="classcrashpad_1_1PtraceStrategyDecider.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1RangeSet.html">RangeSet</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A set of VMAddress ranges. <a href="classcrashpad_1_1RangeSet.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcrashpad_1_1RegistrationRequest.html">RegistrationRequest</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A client registration request. <a href="structcrashpad_1_1RegistrationRequest.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcrashpad_1_1RegistrationResponse.html">RegistrationResponse</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A client registration response. <a href="structcrashpad_1_1RegistrationResponse.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcrashpad_1_1RTL__UNLOAD__EVENT__TRACE.html">RTL_UNLOAD_EVENT_TRACE</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcrashpad_1_1SanitizationInformation.html">SanitizationInformation</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Struture containing information about how snapshots should be sanitized. <a href="structcrashpad_1_1SanitizationInformation.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcrashpad_1_1SanitizationMemoryRangeWhitelist.html">SanitizationMemoryRangeWhitelist</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Describes a list of white listed memory ranges. <a href="structcrashpad_1_1SanitizationMemoryRangeWhitelist.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1ScopedForbidReturn.html">ScopedForbidReturn</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Asserts that a scope must not be exited while unsafe. <a href="classcrashpad_1_1ScopedForbidReturn.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1ScopedMmap.html">ScopedMmap</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Maintains a memory-mapped region created by <code>mmap()</code>. <a href="classcrashpad_1_1ScopedMmap.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1ScopedProcessSuspend.html">ScopedProcessSuspend</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Manages the suspension of another process. <a href="classcrashpad_1_1ScopedProcessSuspend.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1ScopedPrSetDumpable.html">ScopedPrSetDumpable</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1ScopedPrSetPtracer.html">ScopedPrSetPtracer</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1ScopedPtraceAttach.html">ScopedPtraceAttach</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Maintains a <code>ptrace()</code> attachment to a process. <a href="classcrashpad_1_1ScopedPtraceAttach.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcrashpad_1_1ScopedRegistryKeyCloseTraits.html">ScopedRegistryKeyCloseTraits</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcrashpad_1_1ScopedRemoveFileTraits.html">ScopedRemoveFileTraits</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1ScopedSetEvent.html">ScopedSetEvent</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calls <code>SetEvent()</code> on destruction at latest. <a href="classcrashpad_1_1ScopedSetEvent.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1ScopedTaskSuspend.html">ScopedTaskSuspend</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Manages the suspension of another task. <a href="classcrashpad_1_1ScopedTaskSuspend.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1Semaphore.html">Semaphore</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">An anonymous in-process counting sempahore. <a href="classcrashpad_1_1Semaphore.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">union &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="unioncrashpad_1_1ServerToClientMessage.html">ServerToClientMessage</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">The response sent back to the client via <a class="el" href="namespacecrashpad.html#a638d7916642f81df8063d300f08ff2ca" title="Connect over the given pipe_name, passing message to the server, storing the server&#39;s reply into resp...">SendToCrashHandlerServer()</a>. <a href="unioncrashpad_1_1ServerToClientMessage.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1SessionEndWatcher.html">SessionEndWatcher</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a hidden window and waits for a <code>WM_ENDSESSION</code> message, indicating that the session is ending and the application should terminate. <a href="classcrashpad_1_1SessionEndWatcher.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1Settings.html">Settings</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">An interface for accessing and modifying the settings of a <a class="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>. <a href="classcrashpad_1_1Settings.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcrashpad_1_1ShutdownRequest.html">ShutdownRequest</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A message only sent to the server by itself to trigger shutdown. <a href="structcrashpad_1_1ShutdownRequest.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1Signals.html">Signals</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Utilities for handling POSIX signals. <a href="classcrashpad_1_1Signals.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1SnapshotMinidumpMemoryWriter.html">SnapshotMinidumpMemoryWriter</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">The base class for writers of memory ranges pointed to by <a class="el" href="structMINIDUMP__MEMORY__DESCRIPTOR.html" title="A pointer to a snapshot of a region of memory contained within a minidump file.">MINIDUMP_MEMORY_DESCRIPTOR</a> objects in a minidump file. <a href="classcrashpad_1_1SnapshotMinidumpMemoryWriter.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1Stoppable.html">Stoppable</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">An interface for operations that may be Started and Stopped. <a href="classcrashpad_1_1Stoppable.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1StringAnnotation.html">StringAnnotation</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">An. <a href="classcrashpad_1_1StringAnnotation.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1StringFile.html">StringFile</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A file reader and writer backed by a virtual file, as opposed to a file on disk or other operating system file descriptor-based file. <a href="classcrashpad_1_1StringFile.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1StringHTTPBodyStream.html">StringHTTPBodyStream</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">An implementation of <a class="el" href="classcrashpad_1_1HTTPBodyStream.html" title="An interface to a stream that can be used for an HTTP request body.">HTTPBodyStream</a> that turns a fixed string into a stream. <a href="classcrashpad_1_1StringHTTPBodyStream.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1SystemSnapshot.html">SystemSnapshot</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">An abstract interface to a snapshot representing the state of a system, comprising an operating system, CPU architecture, and various other characteristics. <a href="classcrashpad_1_1SystemSnapshot.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcrashpad_1_1TestCrashpadInfo.html">TestCrashpadInfo</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1Thread.html">Thread</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic thread abstraction. Users should derive from this class and implement ThreadMain(). <a href="classcrashpad_1_1Thread.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">union &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="unioncrashpad_1_1ThreadContext.html">ThreadContext</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">The set of general purpose registers for an architecture family. <a href="unioncrashpad_1_1ThreadContext.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcrashpad_1_1ThreadInfo.html">ThreadInfo</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A collection of <code>ptrace</code>-able information about a thread. <a href="structcrashpad_1_1ThreadInfo.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1ThreadLogMessages.html">ThreadLogMessages</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Captures log messages produced on the current thread during an object’s lifetime. <a href="classcrashpad_1_1ThreadLogMessages.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1ThreadSafeVector.html">ThreadSafeVector</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A wrapper for a <code>std::vector&lt;&gt;</code> that can be accessed safely from multiple threads. <a href="classcrashpad_1_1ThreadSafeVector.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1ThreadSnapshot.html">ThreadSnapshot</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">An abstract interface to a snapshot representing a thread (lightweight process) present in a snapshot process. <a href="classcrashpad_1_1ThreadSnapshot.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1ToolSupport.html">ToolSupport</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Common functions used by command line tools. <a href="classcrashpad_1_1ToolSupport.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcrashpad_1_1Traits32.html">Traits32</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcrashpad_1_1Traits64.html">Traits64</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1TSimpleAddressRangeBag.html">TSimpleAddressRangeBag</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A bag implementation using a fixed amount of storage, so that it does not perform any dynamic allocations for its operations. <a href="classcrashpad_1_1TSimpleAddressRangeBag.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1TSimpleStringDictionary.html">TSimpleStringDictionary</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A map/dictionary collection implementation using a fixed amount of storage, so that it does not perform any dynamic allocations for its operations. <a href="classcrashpad_1_1TSimpleStringDictionary.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcrashpad_1_1uint128__struct.html">uint128_struct</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Stores a 128-bit quantity. <a href="structcrashpad_1_1uint128__struct.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1UniversalMachExcServer.html">UniversalMachExcServer</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A server interface for the <code>exc</code> and <code>mach_exc</code> Mach subsystems, unified to handle exceptions delivered to either subsystem, and simplified to have only a single interface method needing implementation. <a href="classcrashpad_1_1UniversalMachExcServer.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1UnixCredentialSocket.html">UnixCredentialSocket</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Utilities for communicating over <code>SO_PASSCRED</code> enabled <code>AF_UNIX</code> sockets. <a href="classcrashpad_1_1UnixCredentialSocket.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1UnloadedModuleSnapshot.html">UnloadedModuleSnapshot</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Information about an unloaded module that was previously loaded into a snapshot process. <a href="classcrashpad_1_1UnloadedModuleSnapshot.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1UserMinidumpStream.html">UserMinidumpStream</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Information describing a custom user data stream in a minidump. <a href="classcrashpad_1_1UserMinidumpStream.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1UserStreamDataSource.html">UserStreamDataSource</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Extensibility interface for embedders who wish to add custom streams to minidumps. <a href="classcrashpad_1_1UserStreamDataSource.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcrashpad_1_1UUID.html">UUID</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A universally unique identifier (UUID). <a href="structcrashpad_1_1UUID.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1WeakFileHandleFileReader.html">WeakFileHandleFileReader</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A file reader backed by a FileHandle. <a href="classcrashpad_1_1WeakFileHandleFileReader.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1WeakFileHandleFileWriter.html">WeakFileHandleFileWriter</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A file writer backed by a FileHandle. <a href="classcrashpad_1_1WeakFileHandleFileWriter.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1WorkerThread.html">WorkerThread</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A <a class="el" href="classcrashpad_1_1WorkerThread.html" title="A WorkerThread executes its Delegate&#39;s DoWork method repeatedly on a dedicated thread at a set time i...">WorkerThread</a> executes its <a class="el" href="classcrashpad_1_1WorkerThread_1_1Delegate.html" title="An interface for doing work on a WorkerThread.">Delegate</a>'s DoWork method repeatedly on a dedicated thread at a set time interval. <a href="classcrashpad_1_1WorkerThread.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcrashpad_1_1WritableIoVec.html">WritableIoVec</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A version of <code>iovec</code> with a <code>const</code> <a class="el" href="structcrashpad_1_1WritableIoVec.html#abcf5d801519cf50aa286c3baa8f55d05" title="The base address of a memory region for output.">iov_base</a> field. <a href="structcrashpad_1_1WritableIoVec.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1ZlibOutputStream.html">ZlibOutputStream</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">The class wraps zlib into <em>OutputStreamInterface</em>. <a href="classcrashpad_1_1ZlibOutputStream.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:a3843475bf1f7956af4153e33bd1bd298"><td class="memItemLeft" align="right" valign="top"><a id="a3843475bf1f7956af4153e33bd1bd298"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#a3843475bf1f7956af4153e33bd1bd298">SimpleAddressRangeBag</a> = <a class="el" href="classcrashpad_1_1TSimpleAddressRangeBag.html">TSimpleAddressRangeBag</a>&lt; 64 &gt;</td></tr>
<tr class="memdesc:a3843475bf1f7956af4153e33bd1bd298"><td class="mdescLeft">&#160;</td><td class="mdescRight">A <a class="el" href="classcrashpad_1_1TSimpleAddressRangeBag.html" title="A bag implementation using a fixed amount of storage, so that it does not perform any dynamic allocat...">TSimpleAddressRangeBag</a> with default template parameters. <br /></td></tr>
<tr class="separator:a3843475bf1f7956af4153e33bd1bd298"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac21afdb4f6e3c57ccf3bd34ea8410978"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#ac21afdb4f6e3c57ccf3bd34ea8410978">SimpleStringDictionary</a> = <a class="el" href="classcrashpad_1_1TSimpleStringDictionary.html">TSimpleStringDictionary</a>&lt; 256, 256, 64 &gt;</td></tr>
<tr class="memdesc:ac21afdb4f6e3c57ccf3bd34ea8410978"><td class="mdescLeft">&#160;</td><td class="mdescRight">A <a class="el" href="classcrashpad_1_1TSimpleStringDictionary.html" title="A map/dictionary collection implementation using a fixed amount of storage, so that it does not perfo...">TSimpleStringDictionary</a> with default template parameters. <a href="namespacecrashpad.html#ac21afdb4f6e3c57ccf3bd34ea8410978">More...</a><br /></td></tr>
<tr class="separator:ac21afdb4f6e3c57ccf3bd34ea8410978"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a71d28b33f9193d2f053d195d990c81fb"><td class="memItemLeft" align="right" valign="top"><a id="a71d28b33f9193d2f053d195d990c81fb"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><b>UserStreamDataSources</b> = std::vector&lt; std::unique_ptr&lt; <a class="el" href="classcrashpad_1_1UserStreamDataSource.html">UserStreamDataSource</a> &gt; &gt;</td></tr>
<tr class="separator:a71d28b33f9193d2f053d195d990c81fb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5271a1e77e5f5f6489d6695cf4f5e5b7"><td class="memItemLeft" align="right" valign="top"><a id="a5271a1e77e5f5f6489d6695cf4f5e5b7"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><b>MinidumpUTF16StringListWriter</b> = <a class="el" href="classcrashpad_1_1internal_1_1MinidumpStringListWriter.html">internal::MinidumpStringListWriter</a>&lt; <a class="el" href="classcrashpad_1_1internal_1_1MinidumpUTF16StringWriter.html">internal::MinidumpUTF16StringWriter</a> &gt;</td></tr>
<tr class="separator:a5271a1e77e5f5f6489d6695cf4f5e5b7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad1d380a185db166c94450cc237765f72"><td class="memItemLeft" align="right" valign="top"><a id="ad1d380a185db166c94450cc237765f72"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><b>MinidumpUTF8StringListWriter</b> = <a class="el" href="classcrashpad_1_1internal_1_1MinidumpStringListWriter.html">internal::MinidumpStringListWriter</a>&lt; <a class="el" href="classcrashpad_1_1internal_1_1MinidumpUTF8StringWriter.html">internal::MinidumpUTF8StringWriter</a> &gt;</td></tr>
<tr class="separator:ad1d380a185db166c94450cc237765f72"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae426d8c91f5448aaf543f91478d831da"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#ae426d8c91f5448aaf543f91478d831da">MinidumpThreadIDMap</a> = std::map&lt; uint64_t, uint32_t &gt;</td></tr>
<tr class="memdesc:ae426d8c91f5448aaf543f91478d831da"><td class="mdescLeft">&#160;</td><td class="mdescRight">A map that connects 64-bit snapshot thread IDs to 32-bit minidump thread IDs. <a href="namespacecrashpad.html#ae426d8c91f5448aaf543f91478d831da">More...</a><br /></td></tr>
<tr class="separator:ae426d8c91f5448aaf543f91478d831da"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a07f8e33c4fdeba3783277f9f2563e48a"><td class="memItemLeft" align="right" valign="top"><a id="a07f8e33c4fdeba3783277f9f2563e48a"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#a07f8e33c4fdeba3783277f9f2563e48a">FileHandle</a> = int</td></tr>
<tr class="memdesc:a07f8e33c4fdeba3783277f9f2563e48a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Platform-specific alias for a low-level file handle. <br /></td></tr>
<tr class="separator:a07f8e33c4fdeba3783277f9f2563e48a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1e53a1957d9edcba8b406ea632b6daf2"><td class="memItemLeft" align="right" valign="top"><a id="a1e53a1957d9edcba8b406ea632b6daf2"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#a1e53a1957d9edcba8b406ea632b6daf2">FileOffset</a> = off_t</td></tr>
<tr class="memdesc:a1e53a1957d9edcba8b406ea632b6daf2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Platform-specific alias for a position in an open file. <br /></td></tr>
<tr class="separator:a1e53a1957d9edcba8b406ea632b6daf2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9daa1b956487883acd9f43d13cc77339"><td class="memItemLeft" align="right" valign="top"><a id="a9daa1b956487883acd9f43d13cc77339"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#a9daa1b956487883acd9f43d13cc77339">ScopedFileHandle</a> = base::ScopedFD</td></tr>
<tr class="memdesc:a9daa1b956487883acd9f43d13cc77339"><td class="mdescLeft">&#160;</td><td class="mdescRight">Scoped wrapper of a FileHandle. <br /></td></tr>
<tr class="separator:a9daa1b956487883acd9f43d13cc77339"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a25465a3a2d289a06addf93c346c6f917"><td class="memItemLeft" align="right" valign="top"><a id="a25465a3a2d289a06addf93c346c6f917"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#a25465a3a2d289a06addf93c346c6f917">FileOperationResult</a> = ssize_t</td></tr>
<tr class="memdesc:a25465a3a2d289a06addf93c346c6f917"><td class="mdescLeft">&#160;</td><td class="mdescRight">The return value of read and write calls. <br /></td></tr>
<tr class="separator:a25465a3a2d289a06addf93c346c6f917"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac3b155594084d47e9480cbc5025c6b67"><td class="memItemLeft" align="right" valign="top"><a id="ac3b155594084d47e9480cbc5025c6b67"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><b>ScopedRemoveFile</b> = base::ScopedGeneric&lt; base::FilePath, <a class="el" href="structcrashpad_1_1ScopedRemoveFileTraits.html">ScopedRemoveFileTraits</a> &gt;</td></tr>
<tr class="separator:ac3b155594084d47e9480cbc5025c6b67"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acb197256391fbfca91f9a7e5c911db45"><td class="memItemLeft" align="right" valign="top"><a id="acb197256391fbfca91f9a7e5c911db45"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#acb197256391fbfca91f9a7e5c911db45">LinuxVMAddress</a> = uint64_t</td></tr>
<tr class="memdesc:acb197256391fbfca91f9a7e5c911db45"><td class="mdescLeft">&#160;</td><td class="mdescRight">Type used to represent an address in a process, potentially across bitness. <br /></td></tr>
<tr class="separator:acb197256391fbfca91f9a7e5c911db45"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa2b5b2818842bda12ff9c4d555c2c8c8"><td class="memItemLeft" align="right" valign="top"><a id="aa2b5b2818842bda12ff9c4d555c2c8c8"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#aa2b5b2818842bda12ff9c4d555c2c8c8">LinuxVMSize</a> = uint64_t</td></tr>
<tr class="memdesc:aa2b5b2818842bda12ff9c4d555c2c8c8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Type used to represent the size of a memory range (with a LinuxVMAddress), potentially across bitness. <br /></td></tr>
<tr class="separator:aa2b5b2818842bda12ff9c4d555c2c8c8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaceb37fb2d50bfedc7242a92e962df3f"><td class="memItemLeft" align="right" valign="top"><a id="aaceb37fb2d50bfedc7242a92e962df3f"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#aaceb37fb2d50bfedc7242a92e962df3f">LinuxVMOffset</a> = int64_t</td></tr>
<tr class="memdesc:aaceb37fb2d50bfedc7242a92e962df3f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Type used to represent an offset from a LinuxVMAddress, potentially across bitness. <br /></td></tr>
<tr class="separator:aaceb37fb2d50bfedc7242a92e962df3f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab3efce65e2b78974531f2cb663f352d9"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#ab3efce65e2b78974531f2cb663f352d9">CheckedLinuxAddressRange</a> = <a class="el" href="classcrashpad_1_1internal_1_1CheckedAddressRangeGeneric.html">internal::CheckedAddressRangeGeneric</a>&lt; <a class="el" href="namespacecrashpad.html#acb197256391fbfca91f9a7e5c911db45">LinuxVMAddress</a>, <a class="el" href="namespacecrashpad.html#aa2b5b2818842bda12ff9c4d555c2c8c8">LinuxVMSize</a> &gt;</td></tr>
<tr class="memdesc:ab3efce65e2b78974531f2cb663f352d9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Ensures that a range, composed of a base and a size, does not overflow the pointer type of the process it describes a range in. <a href="namespacecrashpad.html#ab3efce65e2b78974531f2cb663f352d9">More...</a><br /></td></tr>
<tr class="separator:ab3efce65e2b78974531f2cb663f352d9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8d7f0170c573e59ca6b02e29735f4fad"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#a8d7f0170c573e59ca6b02e29735f4fad">CheckedMachAddressRange</a> = <a class="el" href="classcrashpad_1_1internal_1_1CheckedAddressRangeGeneric.html">internal::CheckedAddressRangeGeneric</a>&lt; mach_vm_address_t, mach_vm_size_t &gt;</td></tr>
<tr class="memdesc:a8d7f0170c573e59ca6b02e29735f4fad"><td class="mdescLeft">&#160;</td><td class="mdescRight">Ensures that a range, composed of a base and a size, does not overflow the pointer type of the process it describes a range in. <a href="namespacecrashpad.html#a8d7f0170c573e59ca6b02e29735f4fad">More...</a><br /></td></tr>
<tr class="separator:a8d7f0170c573e59ca6b02e29735f4fad"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a72fa9ea632f7f1ec93ec3c1b1d300db6"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#a72fa9ea632f7f1ec93ec3c1b1d300db6">ConstThreadState</a> = const natural_t *</td></tr>
<tr class="memdesc:a72fa9ea632f7f1ec93ec3c1b1d300db6"><td class="mdescLeft">&#160;</td><td class="mdescRight">A const version of <code>thread_state_t</code>. <a href="namespacecrashpad.html#a72fa9ea632f7f1ec93ec3c1b1d300db6">More...</a><br /></td></tr>
<tr class="separator:a72fa9ea632f7f1ec93ec3c1b1d300db6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a34f36473e385b19eb229798ab2f7210c"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#a34f36473e385b19eb229798ab2f7210c">MachMessageDeadline</a> = uint64_t</td></tr>
<tr class="memdesc:a34f36473e385b19eb229798ab2f7210c"><td class="mdescLeft">&#160;</td><td class="mdescRight">The time before which a <a class="el" href="namespacecrashpad.html#a35293418a0b7637a00631807ac4b431e" title="Runs mach_msg() with a deadline, as opposed to a timeout.">MachMessageWithDeadline()</a> call should complete. <a href="namespacecrashpad.html#a34f36473e385b19eb229798ab2f7210c">More...</a><br /></td></tr>
<tr class="separator:a34f36473e385b19eb229798ab2f7210c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af2d003bfc8632755c60ab27bd6d1c8ae"><td class="memItemLeft" align="right" valign="top"><a id="af2d003bfc8632755c60ab27bd6d1c8ae"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#af2d003bfc8632755c60ab27bd6d1c8ae">VMAddress</a> = uint64_t</td></tr>
<tr class="memdesc:af2d003bfc8632755c60ab27bd6d1c8ae"><td class="mdescLeft">&#160;</td><td class="mdescRight">Type used to represent an address in a process, potentially across bitness. <br /></td></tr>
<tr class="separator:af2d003bfc8632755c60ab27bd6d1c8ae"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a103690edebf604dcd23d5c03b78fe0be"><td class="memItemLeft" align="right" valign="top"><a id="a103690edebf604dcd23d5c03b78fe0be"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#a103690edebf604dcd23d5c03b78fe0be">VMSize</a> = uint64_t</td></tr>
<tr class="memdesc:a103690edebf604dcd23d5c03b78fe0be"><td class="mdescLeft">&#160;</td><td class="mdescRight">Type used to represent the size of a memory range (with a VMAddress), potentially across bitness. <br /></td></tr>
<tr class="separator:a103690edebf604dcd23d5c03b78fe0be"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac738e47e73215dc7110edad7c2785527"><td class="memItemLeft" align="right" valign="top"><a id="ac738e47e73215dc7110edad7c2785527"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#ac738e47e73215dc7110edad7c2785527">VMOffset</a> = std::make_signed&lt; <a class="el" href="namespacecrashpad.html#a103690edebf604dcd23d5c03b78fe0be">VMSize</a> &gt;::type</td></tr>
<tr class="memdesc:ac738e47e73215dc7110edad7c2785527"><td class="mdescLeft">&#160;</td><td class="mdescRight">Type used to represent an offset from a VMAddress, potentially across bitness. <br /></td></tr>
<tr class="separator:ac738e47e73215dc7110edad7c2785527"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0f13feba965ef7750b3d49064936e5ee"><td class="memItemLeft" align="right" valign="top"><a id="a0f13feba965ef7750b3d49064936e5ee"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#a0f13feba965ef7750b3d49064936e5ee">SymbolicConstantToStringOptions</a> = unsigned int</td></tr>
<tr class="memdesc:a0f13feba965ef7750b3d49064936e5ee"><td class="mdescLeft">&#160;</td><td class="mdescRight">A bitfield containing values of <a class="el" href="namespacecrashpad.html#a7856b82b71167792ea6103debb5105ed" title="Options for various *ToString functions in symbolic_constants_* files.">SymbolicConstantToStringOptionBits</a>. <br /></td></tr>
<tr class="separator:a0f13feba965ef7750b3d49064936e5ee"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a14f1de509869f929122998a2f88f08a6"><td class="memItemLeft" align="right" valign="top"><a id="a14f1de509869f929122998a2f88f08a6"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#a14f1de509869f929122998a2f88f08a6">StringToSymbolicConstantOptions</a> = unsigned int</td></tr>
<tr class="memdesc:a14f1de509869f929122998a2f88f08a6"><td class="mdescLeft">&#160;</td><td class="mdescRight">A bitfield containing values of <a class="el" href="namespacecrashpad.html#a8387ad067a7e6a1735ab97a1af450d2b" title="Options for various StringTo* functions in symbolic_constants_* files.">StringToSymbolicConstantOptionBits</a>. <br /></td></tr>
<tr class="separator:a14f1de509869f929122998a2f88f08a6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af6ffe10a8131fab8d1f8de60d9a812f9"><td class="memItemLeft" align="right" valign="top"><a id="af6ffe10a8131fab8d1f8de60d9a812f9"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#af6ffe10a8131fab8d1f8de60d9a812f9">HTTPHeaders</a> = std::map&lt; std::string, std::string &gt;</td></tr>
<tr class="memdesc:af6ffe10a8131fab8d1f8de60d9a812f9"><td class="mdescLeft">&#160;</td><td class="mdescRight">A map of HTTP header fields to their values. <br /></td></tr>
<tr class="separator:af6ffe10a8131fab8d1f8de60d9a812f9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a754aa9162769947b5a5debad05d8d6ae"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#a754aa9162769947b5a5debad05d8d6ae">CheckedVMAddressRange</a> = <a class="el" href="classcrashpad_1_1internal_1_1CheckedAddressRangeGeneric.html">internal::CheckedAddressRangeGeneric</a>&lt; <a class="el" href="namespacecrashpad.html#af2d003bfc8632755c60ab27bd6d1c8ae">VMAddress</a>, <a class="el" href="namespacecrashpad.html#a103690edebf604dcd23d5c03b78fe0be">VMSize</a> &gt;</td></tr>
<tr class="memdesc:a754aa9162769947b5a5debad05d8d6ae"><td class="mdescLeft">&#160;</td><td class="mdescRight">Ensures that a range, composed of a base and a size, does not overflow the pointer type of the process it describes a range in. <a href="namespacecrashpad.html#a754aa9162769947b5a5debad05d8d6ae">More...</a><br /></td></tr>
<tr class="separator:a754aa9162769947b5a5debad05d8d6ae"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac63c0ded12544d344a9ad552958adf85"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#ac63c0ded12544d344a9ad552958adf85">ScopedDIR</a> = base::ScopedGeneric&lt; DIR *, <a class="el" href="structcrashpad_1_1internal_1_1ScopedDIRCloseTraits.html">internal::ScopedDIRCloseTraits</a> &gt;</td></tr>
<tr class="memdesc:ac63c0ded12544d344a9ad552958adf85"><td class="mdescLeft">&#160;</td><td class="mdescRight">Maintains a directory opened by <code>opendir</code>. <a href="namespacecrashpad.html#ac63c0ded12544d344a9ad552958adf85">More...</a><br /></td></tr>
<tr class="separator:ac63c0ded12544d344a9ad552958adf85"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0f06cbe8cfef9e24ceed3e34de6563c2"><td class="memItemLeft" align="right" valign="top"><a id="a0f06cbe8cfef9e24ceed3e34de6563c2"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#a0f06cbe8cfef9e24ceed3e34de6563c2">ProcessID</a> = pid_t</td></tr>
<tr class="memdesc:a0f06cbe8cfef9e24ceed3e34de6563c2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Alias for platform-specific type to represent a process. <br /></td></tr>
<tr class="separator:a0f06cbe8cfef9e24ceed3e34de6563c2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6657fb44b942e34d54fa8ee38cde79a6"><td class="memItemLeft" align="right" valign="top"><a id="a6657fb44b942e34d54fa8ee38cde79a6"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#a6657fb44b942e34d54fa8ee38cde79a6">ProcessMemoryNative</a> = <a class="el" href="classcrashpad_1_1ProcessMemoryFuchsia.html">ProcessMemoryFuchsia</a></td></tr>
<tr class="memdesc:a6657fb44b942e34d54fa8ee38cde79a6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Alias for platform-specific native implementation of <a class="el" href="classcrashpad_1_1ProcessMemory.html" title="Abstract base class for accessing the memory of another process.">ProcessMemory</a>. <br /></td></tr>
<tr class="separator:a6657fb44b942e34d54fa8ee38cde79a6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0103ebbd1b4f59431dd7292bd544de39"><td class="memTemplParams" colspan="2">template&lt;typename T , size_t Alignment = alignof(T)&gt; </td></tr>
<tr class="memitem:a0103ebbd1b4f59431dd7292bd544de39"><td class="memTemplItemLeft" align="right" valign="top">using&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#a0103ebbd1b4f59431dd7292bd544de39">AlignedVector</a> = std::vector&lt; T, <a class="el" href="structcrashpad_1_1AlignedAllocator.html">AlignedAllocator</a>&lt; T, Alignment &gt; &gt;</td></tr>
<tr class="memdesc:a0103ebbd1b4f59431dd7292bd544de39"><td class="mdescLeft">&#160;</td><td class="mdescRight">A <code>std::vector</code> using <a class="el" href="structcrashpad_1_1AlignedAllocator.html" title="A standard allocator that aligns its allocations as requested, suitable for use as an allocator in st...">AlignedAllocator</a>. <a href="namespacecrashpad.html#a0103ebbd1b4f59431dd7292bd544de39">More...</a><br /></td></tr>
<tr class="separator:a0103ebbd1b4f59431dd7292bd544de39"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a368af6d88f68998b5c5eb80b8f6ebb76"><td class="memItemLeft" align="right" valign="top"><a id="a368af6d88f68998b5c5eb80b8f6ebb76"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#a368af6d88f68998b5c5eb80b8f6ebb76">WinVMAddress</a> = uint64_t</td></tr>
<tr class="memdesc:a368af6d88f68998b5c5eb80b8f6ebb76"><td class="mdescLeft">&#160;</td><td class="mdescRight">Type used to represent an address in a process, potentially across bitness. <br /></td></tr>
<tr class="separator:a368af6d88f68998b5c5eb80b8f6ebb76"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1bac9f2a189b24737e743d6690362239"><td class="memItemLeft" align="right" valign="top"><a id="a1bac9f2a189b24737e743d6690362239"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#a1bac9f2a189b24737e743d6690362239">WinVMSize</a> = uint64_t</td></tr>
<tr class="memdesc:a1bac9f2a189b24737e743d6690362239"><td class="mdescLeft">&#160;</td><td class="mdescRight">Type used to represent the size of a memory range (with a WinVMAddress), potentially across bitness. <br /></td></tr>
<tr class="separator:a1bac9f2a189b24737e743d6690362239"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad171ce8db60c84b2d875f7acd3b90f1e"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#ad171ce8db60c84b2d875f7acd3b90f1e">CheckedWinAddressRange</a> = <a class="el" href="classcrashpad_1_1internal_1_1CheckedAddressRangeGeneric.html">internal::CheckedAddressRangeGeneric</a>&lt; <a class="el" href="namespacecrashpad.html#a368af6d88f68998b5c5eb80b8f6ebb76">WinVMAddress</a>, <a class="el" href="namespacecrashpad.html#a1bac9f2a189b24737e743d6690362239">WinVMSize</a> &gt;</td></tr>
<tr class="memdesc:ad171ce8db60c84b2d875f7acd3b90f1e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Ensures that a range, composed of a base and a size, does not overflow the pointer type of the process it describes a range in. <a href="namespacecrashpad.html#ad171ce8db60c84b2d875f7acd3b90f1e">More...</a><br /></td></tr>
<tr class="separator:ad171ce8db60c84b2d875f7acd3b90f1e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1cbecef0a25523acb23bd161b99bc4ac"><td class="memItemLeft" align="right" valign="top"><a id="a1cbecef0a25523acb23bd161b99bc4ac"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><b>ScopedFileHANDLE</b> = base::ScopedGeneric&lt; HANDLE, <a class="el" href="structcrashpad_1_1internal_1_1ScopedFileHANDLECloseTraits.html">internal::ScopedFileHANDLECloseTraits</a> &gt;</td></tr>
<tr class="separator:a1cbecef0a25523acb23bd161b99bc4ac"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a76696c6339810ca1c46878023cb7bb09"><td class="memItemLeft" align="right" valign="top"><a id="a76696c6339810ca1c46878023cb7bb09"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><b>ScopedKernelHANDLE</b> = base::ScopedGeneric&lt; HANDLE, <a class="el" href="structcrashpad_1_1internal_1_1ScopedKernelHANDLECloseTraits.html">internal::ScopedKernelHANDLECloseTraits</a> &gt;</td></tr>
<tr class="separator:a76696c6339810ca1c46878023cb7bb09"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5b4edaab685f8706d136cfdf3807768e"><td class="memItemLeft" align="right" valign="top"><a id="a5b4edaab685f8706d136cfdf3807768e"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><b>ScopedSearchHANDLE</b> = base::ScopedGeneric&lt; HANDLE, <a class="el" href="structcrashpad_1_1internal_1_1ScopedSearchHANDLECloseTraits.html">internal::ScopedSearchHANDLECloseTraits</a> &gt;</td></tr>
<tr class="separator:a5b4edaab685f8706d136cfdf3807768e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9593ac07cbe5f4d3aa01f657e4744214"><td class="memItemLeft" align="right" valign="top"><a id="a9593ac07cbe5f4d3aa01f657e4744214"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><b>ScopedLocalAlloc</b> = base::ScopedGeneric&lt; HLOCAL, <a class="el" href="structcrashpad_1_1internal_1_1LocalAllocTraits.html">internal::LocalAllocTraits</a> &gt;</td></tr>
<tr class="separator:a9593ac07cbe5f4d3aa01f657e4744214"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a78237a2d50838d9b7edd07004971f75d"><td class="memItemLeft" align="right" valign="top"><a id="a78237a2d50838d9b7edd07004971f75d"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><b>ScopedRegistryKey</b> = base::ScopedGeneric&lt; HKEY, <a class="el" href="structcrashpad_1_1ScopedRegistryKeyCloseTraits.html">ScopedRegistryKeyCloseTraits</a> &gt;</td></tr>
<tr class="separator:a78237a2d50838d9b7edd07004971f75d"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
Enumerations</h2></td></tr>
<tr class="memitem:a835e6bd6cb3f97c99c572596878c1573"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#a835e6bd6cb3f97c99c572596878c1573">MinidumpContextFlags</a> : uint32_t </td></tr>
<tr class="memdesc:a835e6bd6cb3f97c99c572596878c1573"><td class="mdescLeft">&#160;</td><td class="mdescRight">Architecture-independent flags for <code>context_flags</code> fields in Minidump context structures. <a href="namespacecrashpad.html#a835e6bd6cb3f97c99c572596878c1573">More...</a><br /></td></tr>
<tr class="separator:a835e6bd6cb3f97c99c572596878c1573"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2a503f0a39ec98188b60178edbc1fc55"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#a2a503f0a39ec98188b60178edbc1fc55">MinidumpContextX86Flags</a> : uint32_t </td></tr>
<tr class="memdesc:a2a503f0a39ec98188b60178edbc1fc55"><td class="mdescLeft">&#160;</td><td class="mdescRight">32-bit x86-specifc flags for MinidumpContextX86::context_flags. <a href="namespacecrashpad.html#a2a503f0a39ec98188b60178edbc1fc55">More...</a><br /></td></tr>
<tr class="separator:a2a503f0a39ec98188b60178edbc1fc55"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa197c419950bae99f1ba663f10b1891c"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#aa197c419950bae99f1ba663f10b1891c">MinidumpContextAMD64Flags</a> : uint32_t </td></tr>
<tr class="memdesc:aa197c419950bae99f1ba663f10b1891c"><td class="mdescLeft">&#160;</td><td class="mdescRight">x86_64-specific flags for MinidumpContextAMD64::context_flags. <a href="namespacecrashpad.html#aa197c419950bae99f1ba663f10b1891c">More...</a><br /></td></tr>
<tr class="separator:aa197c419950bae99f1ba663f10b1891c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab7077f40e8cf5fae1f668085248efe77"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#ab7077f40e8cf5fae1f668085248efe77">MinidumpContextARMFlags</a> : uint32_t </td></tr>
<tr class="memdesc:ab7077f40e8cf5fae1f668085248efe77"><td class="mdescLeft">&#160;</td><td class="mdescRight">32-bit ARM-specifc flags for MinidumpContextARM::context_flags. <a href="namespacecrashpad.html#ab7077f40e8cf5fae1f668085248efe77">More...</a><br /></td></tr>
<tr class="separator:ab7077f40e8cf5fae1f668085248efe77"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a52002589247bce8e16fc48857f31ec8a"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#a52002589247bce8e16fc48857f31ec8a">MinidumpContextARM64Flags</a> : uint32_t </td></tr>
<tr class="memdesc:a52002589247bce8e16fc48857f31ec8a"><td class="mdescLeft">&#160;</td><td class="mdescRight">64-bit ARM-specifc flags for MinidumpContextARM64::context_flags. <a href="namespacecrashpad.html#a52002589247bce8e16fc48857f31ec8a">More...</a><br /></td></tr>
<tr class="separator:a52002589247bce8e16fc48857f31ec8a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:add06cd316d6db039af0fd3607be18dec"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#add06cd316d6db039af0fd3607be18dec">MinidumpContextMIPSFlags</a> : uint32_t </td></tr>
<tr class="memdesc:add06cd316d6db039af0fd3607be18dec"><td class="mdescLeft">&#160;</td><td class="mdescRight">32bit MIPS-specifc flags for MinidumpContextMIPS::context_flags. Based on minidump_cpu_mips.h from breakpad <a href="namespacecrashpad.html#add06cd316d6db039af0fd3607be18dec">More...</a><br /></td></tr>
<tr class="separator:add06cd316d6db039af0fd3607be18dec"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a34392d7c57fce1cdcc10bb1f026a79e6"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#a34392d7c57fce1cdcc10bb1f026a79e6">MinidumpContextMIPS64Flags</a> : uint32_t </td></tr>
<tr class="memdesc:a34392d7c57fce1cdcc10bb1f026a79e6"><td class="mdescLeft">&#160;</td><td class="mdescRight">64bit MIPS-specifc flags for MinidumpContextMIPS64::context_flags. Based on minidump_cpu_mips.h from breakpad <a href="namespacecrashpad.html#a34392d7c57fce1cdcc10bb1f026a79e6">More...</a><br /></td></tr>
<tr class="separator:a34392d7c57fce1cdcc10bb1f026a79e6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a88363a45a4af1a16f542a8c1ff522ab9"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#a88363a45a4af1a16f542a8c1ff522ab9">MinidumpStreamType</a> : uint32_t </td></tr>
<tr class="memdesc:a88363a45a4af1a16f542a8c1ff522ab9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Minidump stream type values for <a class="el" href="structMINIDUMP__DIRECTORY.html#a425b8b68da6810a126c759c5f5a94f7d" title="The type of stream referenced, a value of MINIDUMP_STREAM_TYPE.">MINIDUMP_DIRECTORY::StreamType</a>. Each stream structure has a corresponding stream type value to identify it. <a href="namespacecrashpad.html#a88363a45a4af1a16f542a8c1ff522ab9">More...</a><br /></td></tr>
<tr class="separator:a88363a45a4af1a16f542a8c1ff522ab9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a98e532bb06fc5ffdd93e0ceb6d789eb1"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#a98e532bb06fc5ffdd93e0ceb6d789eb1">MinidumpCPUArchitecture</a> : uint16_t </td></tr>
<tr class="memdesc:a98e532bb06fc5ffdd93e0ceb6d789eb1"><td class="mdescLeft">&#160;</td><td class="mdescRight">CPU type values for <a class="el" href="structMINIDUMP__SYSTEM__INFO.html#adc85b29d7df8943baf1a96af23051ca8" title="The system’s CPU architecture. This may be a PROCESSOR_ARCHITECTURE_* value, or a member of crashpad:...">MINIDUMP_SYSTEM_INFO::ProcessorArchitecture</a>. <a href="namespacecrashpad.html#a98e532bb06fc5ffdd93e0ceb6d789eb1">More...</a><br /></td></tr>
<tr class="separator:a98e532bb06fc5ffdd93e0ceb6d789eb1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3bf5a6562c9ccee9b4ef3ae4d9ac0be7"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#a3bf5a6562c9ccee9b4ef3ae4d9ac0be7">MinidumpOSType</a> : uint8_t </td></tr>
<tr class="memdesc:a3bf5a6562c9ccee9b4ef3ae4d9ac0be7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operating system type values for <a class="el" href="structMINIDUMP__SYSTEM__INFO.html#a9aac8ed4707ea43563fed1776454bad5" title="The system’s operating system type, which distinguishes between “desktop” or “workstation” systems an...">MINIDUMP_SYSTEM_INFO::ProductType</a>. <a href="namespacecrashpad.html#a3bf5a6562c9ccee9b4ef3ae4d9ac0be7">More...</a><br /></td></tr>
<tr class="separator:a3bf5a6562c9ccee9b4ef3ae4d9ac0be7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9be77c6f7868f00c2f279006a1abe26a"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#a9be77c6f7868f00c2f279006a1abe26a">MinidumpOS</a> : uint32_t </td></tr>
<tr class="memdesc:a9be77c6f7868f00c2f279006a1abe26a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operating system family values for <a class="el" href="structMINIDUMP__SYSTEM__INFO.html#a214e7bd61a89343a80a3c9a265fbbe96" title="The system’s operating system family. This may be a VER_PLATFORM_* value, or a member of crashpad::Mi...">MINIDUMP_SYSTEM_INFO::PlatformId</a>. <a href="namespacecrashpad.html#a9be77c6f7868f00c2f279006a1abe26a">More...</a><br /></td></tr>
<tr class="separator:a9be77c6f7868f00c2f279006a1abe26a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a270e290ba558e948eb6690bd217cbb71"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#a270e290ba558e948eb6690bd217cbb71">CPUArchitecture</a> </td></tr>
<tr class="memdesc:a270e290ba558e948eb6690bd217cbb71"><td class="mdescLeft">&#160;</td><td class="mdescRight">A system’s CPU architecture. <a href="namespacecrashpad.html#a270e290ba558e948eb6690bd217cbb71">More...</a><br /></td></tr>
<tr class="separator:a270e290ba558e948eb6690bd217cbb71"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab96bb7edb42a2e1ce28eda205a18a17a"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#ab96bb7edb42a2e1ce28eda205a18a17a">ProcessSuspensionState</a> : bool </td></tr>
<tr class="memdesc:ab96bb7edb42a2e1ce28eda205a18a17a"><td class="mdescLeft">&#160;</td><td class="mdescRight">State of process being read by ProcessReaderWin. <a href="namespacecrashpad.html#ab96bb7edb42a2e1ce28eda205a18a17a">More...</a><br /></td></tr>
<tr class="separator:ab96bb7edb42a2e1ce28eda205a18a17a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afa69b0967d9a6df659ff5d2a02ff3e51"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#afa69b0967d9a6df659ff5d2a02ff3e51">FileWriteMode</a> </td></tr>
<tr class="memdesc:afa69b0967d9a6df659ff5d2a02ff3e51"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determines the mode that LoggingOpenFileForWrite() uses. <a href="namespacecrashpad.html#afa69b0967d9a6df659ff5d2a02ff3e51">More...</a><br /></td></tr>
<tr class="separator:afa69b0967d9a6df659ff5d2a02ff3e51"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a034ccc90eb0d1f587ee89275d822175d"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#a034ccc90eb0d1f587ee89275d822175d">FilePermissions</a> : bool </td></tr>
<tr class="memdesc:a034ccc90eb0d1f587ee89275d822175d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determines the permissions bits for files created on POSIX systems. <a href="namespacecrashpad.html#a034ccc90eb0d1f587ee89275d822175d">More...</a><br /></td></tr>
<tr class="separator:a034ccc90eb0d1f587ee89275d822175d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3753a95b02e5c96c6e20017e467cef07"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#a3753a95b02e5c96c6e20017e467cef07">FileLocking</a> : bool </td></tr>
<tr class="memdesc:a3753a95b02e5c96c6e20017e467cef07"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determines the locking mode that LoggingLockFile() uses. <a href="namespacecrashpad.html#a3753a95b02e5c96c6e20017e467cef07">More...</a><br /></td></tr>
<tr class="separator:a3753a95b02e5c96c6e20017e467cef07"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8402ddae562db04a8daf6bffecaded5b"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#a8402ddae562db04a8daf6bffecaded5b">StdioStream</a> </td></tr>
<tr class="memdesc:a8402ddae562db04a8daf6bffecaded5b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determines the FileHandle that StdioFileHandle() returns. <a href="namespacecrashpad.html#a8402ddae562db04a8daf6bffecaded5b">More...</a><br /></td></tr>
<tr class="separator:a8402ddae562db04a8daf6bffecaded5b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a589b4d9bd6f2233b67148ab6793c3c13"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#a589b4d9bd6f2233b67148ab6793c3c13">XattrStatus</a> </td></tr>
<tr class="memdesc:a589b4d9bd6f2233b67148ab6793c3c13"><td class="mdescLeft">&#160;</td><td class="mdescRight">The result code for a ReadXattr operation. <a href="namespacecrashpad.html#a589b4d9bd6f2233b67148ab6793c3c13">More...</a><br /></td></tr>
<tr class="separator:a589b4d9bd6f2233b67148ab6793c3c13"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac805f7bb551683e1da0b156c09259c92"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom">: mach_msg_timeout_t </td></tr>
<tr class="memdesc:ac805f7bb551683e1da0b156c09259c92"><td class="mdescLeft">&#160;</td><td class="mdescRight">Special constants used as <code>mach_msg_timeout_t</code> values. <a href="namespacecrashpad.html#ac805f7bb551683e1da0b156c09259c92">More...</a><br /></td></tr>
<tr class="separator:ac805f7bb551683e1da0b156c09259c92"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af3f950b6030a2822b1780155b38ae9b6"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom">: MachMessageDeadline </td></tr>
<tr class="memdesc:af3f950b6030a2822b1780155b38ae9b6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Special constants used as <a class="el" href="namespacecrashpad.html#a34f36473e385b19eb229798ab2f7210c">MachMessageDeadline</a> values. <a href="namespacecrashpad.html#af3f950b6030a2822b1780155b38ae9b6">More...</a><br /></td></tr>
<tr class="separator:af3f950b6030a2822b1780155b38ae9b6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7856b82b71167792ea6103debb5105ed"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#a7856b82b71167792ea6103debb5105ed">SymbolicConstantToStringOptionBits</a> </td></tr>
<tr class="memdesc:a7856b82b71167792ea6103debb5105ed"><td class="mdescLeft">&#160;</td><td class="mdescRight">Options for various <code>*ToString</code> functions in <code>symbolic_constants_*</code> files. <a href="namespacecrashpad.html#a7856b82b71167792ea6103debb5105ed">More...</a><br /></td></tr>
<tr class="separator:a7856b82b71167792ea6103debb5105ed"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8387ad067a7e6a1735ab97a1af450d2b"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#a8387ad067a7e6a1735ab97a1af450d2b">StringToSymbolicConstantOptionBits</a> </td></tr>
<tr class="memdesc:a8387ad067a7e6a1735ab97a1af450d2b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Options for various <code>StringTo*</code> functions in <code>symbolic_constants_*</code> files. <a href="namespacecrashpad.html#a8387ad067a7e6a1735ab97a1af450d2b">More...</a><br /></td></tr>
<tr class="separator:a8387ad067a7e6a1735ab97a1af450d2b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3b405c19a5787fabcfba96001d49f292"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#a3b405c19a5787fabcfba96001d49f292">TriState</a> : uint8_t </td></tr>
<tr class="memdesc:a3b405c19a5787fabcfba96001d49f292"><td class="mdescLeft">&#160;</td><td class="mdescRight">A tri-state value that can be unset, on, or off. <a href="namespacecrashpad.html#a3b405c19a5787fabcfba96001d49f292">More...</a><br /></td></tr>
<tr class="separator:a3b405c19a5787fabcfba96001d49f292"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad366c675e5b2b2b695b8519cec4b90e9"><td class="memItemLeft" align="right" valign="top"><a id="ad366c675e5b2b2b695b8519cec4b90e9"></a>enum &#160;</td><td class="memItemRight" valign="bottom"></td></tr>
<tr class="separator:ad366c675e5b2b2b695b8519cec4b90e9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4f6f332b06ca84bac643803a59642b24"><td class="memItemLeft" align="right" valign="top"><a id="a4f6f332b06ca84bac643803a59642b24"></a>enum &#160;</td><td class="memItemRight" valign="bottom"></td></tr>
<tr class="separator:a4f6f332b06ca84bac643803a59642b24"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acf909fcc58999f95ab1a2d485a3b884f"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#acf909fcc58999f95ab1a2d485a3b884f">TerminationCodes</a> : unsigned int </td></tr>
<tr class="memdesc:acf909fcc58999f95ab1a2d485a3b884f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Crashpad-specific codes that are used as arguments to SafeTerminateProcess() or <code>TerminateProcess()</code> in unusual circumstances. <a href="namespacecrashpad.html#acf909fcc58999f95ab1a2d485a3b884f">More...</a><br /></td></tr>
<tr class="separator:acf909fcc58999f95ab1a2d485a3b884f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae8e27a86d946848ed2024ce3d864d6d7"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"></td></tr>
<tr class="separator:ae8e27a86d946848ed2024ce3d864d6d7"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a14215b40c92752a4e9d28f8aa4c28c29"><td class="memItemLeft" align="right" valign="top">std::vector&lt; std::string &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#a14215b40c92752a4e9d28f8aa4c28c29">BuildHandlerArgvStrings</a> (const base::FilePath &amp;handler, const base::FilePath &amp;database, const base::FilePath &amp;metrics_dir, const std::string &amp;url, const std::map&lt; std::string, std::string &gt; &amp;annotations, const std::vector&lt; std::string &gt; &amp;arguments)</td></tr>
<tr class="memdesc:a14215b40c92752a4e9d28f8aa4c28c29"><td class="mdescLeft">&#160;</td><td class="mdescRight">Builds a vector of arguments suitable for invoking a handler process based on arguments passed to StartHandler-type(). <a href="namespacecrashpad.html#a14215b40c92752a4e9d28f8aa4c28c29">More...</a><br /></td></tr>
<tr class="separator:a14215b40c92752a4e9d28f8aa4c28c29"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8913260552f8af42d01f9155b6e717a5"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#a8913260552f8af42d01f9155b6e717a5">StringVectorToCStringVector</a> (const std::vector&lt; std::string &gt; &amp;strings, std::vector&lt; const char * &gt; *c_strings)</td></tr>
<tr class="memdesc:a8913260552f8af42d01f9155b6e717a5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Flattens a string vector into a const char* vector suitable for use in an exec() call. <a href="namespacecrashpad.html#a8913260552f8af42d01f9155b6e717a5">More...</a><br /></td></tr>
<tr class="separator:a8913260552f8af42d01f9155b6e717a5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4636cb044a8a94be000ac980e543042e"><td class="memItemLeft" align="right" valign="top"><a id="a4636cb044a8a94be000ac980e543042e"></a>
std::unique_ptr&lt; <a class="el" href="classcrashpad_1_1CrashReportDatabase.html">CrashReportDatabase</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>InitializeInternal</b> (const base::FilePath &amp;path, bool may_create)</td></tr>
<tr class="separator:a4636cb044a8a94be000ac980e543042e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1767bc31528e1f4cfb4070855e6da96d"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#a1767bc31528e1f4cfb4070855e6da96d">PruneCrashReportDatabase</a> (<a class="el" href="classcrashpad_1_1CrashReportDatabase.html">CrashReportDatabase</a> *database, <a class="el" href="classcrashpad_1_1PruneCondition.html">PruneCondition</a> *condition)</td></tr>
<tr class="memdesc:a1767bc31528e1f4cfb4070855e6da96d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Deletes crash reports from <em>database</em> that match <em>condition</em>. <a href="namespacecrashpad.html#a1767bc31528e1f4cfb4070855e6da96d">More...</a><br /></td></tr>
<tr class="separator:a1767bc31528e1f4cfb4070855e6da96d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5386e76e74bf6200e1959dddb99509b3"><td class="memItemLeft" align="right" valign="top"><a id="a5386e76e74bf6200e1959dddb99509b3"></a>
std::unique_ptr&lt; <a class="el" href="classcrashpad_1_1PruneCondition.html">PruneCondition</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>GetDefaultDatabasePruneCondition</b> ()</td></tr>
<tr class="separator:a5386e76e74bf6200e1959dddb99509b3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a45a44a5552e00ceaf0917f94433ac104"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#a45a44a5552e00ceaf0917f94433ac104">SimulateCrash</a> (const NativeCPUContext &amp;cpu_context)</td></tr>
<tr class="memdesc:a45a44a5552e00ceaf0917f94433ac104"><td class="mdescLeft">&#160;</td><td class="mdescRight">Simulates a exception without crashing. <a href="namespacecrashpad.html#a45a44a5552e00ceaf0917f94433ac104">More...</a><br /></td></tr>
<tr class="separator:a45a44a5552e00ceaf0917f94433ac104"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2c6dd0b469072cc3787ff17c8de47a84"><td class="memItemLeft" align="right" valign="top"><a id="a2c6dd0b469072cc3787ff17c8de47a84"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><b>CrashpadHandlerMain</b> (int argc, char *argv[])</td></tr>
<tr class="separator:a2c6dd0b469072cc3787ff17c8de47a84"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6925b00a82891a9fd7a77ec6f5259094"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#a6925b00a82891a9fd7a77ec6f5259094">HandlerMain</a> (int argc, char *argv[], const UserStreamDataSources *user_stream_sources)</td></tr>
<tr class="memdesc:a6925b00a82891a9fd7a77ec6f5259094"><td class="mdescLeft">&#160;</td><td class="mdescRight">The <code>main()</code> of the <code>crashpad_handler</code> binary. <a href="namespacecrashpad.html#a6925b00a82891a9fd7a77ec6f5259094">More...</a><br /></td></tr>
<tr class="separator:a6925b00a82891a9fd7a77ec6f5259094"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acd8819955d3c396805f044bff1ecf595"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#acd8819955d3c396805f044bff1ecf595">CaptureSnapshot</a> (<a class="el" href="classcrashpad_1_1PtraceConnection.html">PtraceConnection</a> *connection, const <a class="el" href="structcrashpad_1_1ExceptionHandlerProtocol_1_1ClientInformation.html">ExceptionHandlerProtocol::ClientInformation</a> &amp;info, const std::map&lt; std::string, std::string &gt; &amp;process_annotations, uid_t client_uid, <a class="el" href="namespacecrashpad.html#af2d003bfc8632755c60ab27bd6d1c8ae">VMAddress</a> requesting_thread_stack_address, pid_t *requesting_thread_id, std::unique_ptr&lt; <a class="el" href="classcrashpad_1_1ProcessSnapshotLinux.html">ProcessSnapshotLinux</a> &gt; *process_snapshot, std::unique_ptr&lt; <a class="el" href="classcrashpad_1_1ProcessSnapshotSanitized.html">ProcessSnapshotSanitized</a> &gt; *sanitized_snapshot)</td></tr>
<tr class="memdesc:acd8819955d3c396805f044bff1ecf595"><td class="mdescLeft">&#160;</td><td class="mdescRight">Captures a snapshot of a client over <em>connection</em>. <a href="namespacecrashpad.html#acd8819955d3c396805f044bff1ecf595">More...</a><br /></td></tr>
<tr class="separator:acd8819955d3c396805f044bff1ecf595"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad20301f0c5158576b0893444ff662108"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#ad20301f0c5158576b0893444ff662108">RecordFileLimitAnnotation</a> ()</td></tr>
<tr class="memdesc:ad20301f0c5158576b0893444ff662108"><td class="mdescLeft">&#160;</td><td class="mdescRight">Records a <code>"file-limits"</code> simple annotation for the process. <a href="namespacecrashpad.html#ad20301f0c5158576b0893444ff662108">More...</a><br /></td></tr>
<tr class="separator:ad20301f0c5158576b0893444ff662108"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a63faa5e791871a34f458e2e3995389df"><td class="memItemLeft" align="right" valign="top">std::map&lt; std::string, std::string &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#a63faa5e791871a34f458e2e3995389df">BreakpadHTTPFormParametersFromMinidump</a> (const <a class="el" href="classcrashpad_1_1ProcessSnapshot.html">ProcessSnapshot</a> *process_snapshot)</td></tr>
<tr class="memdesc:a63faa5e791871a34f458e2e3995389df"><td class="mdescLeft">&#160;</td><td class="mdescRight">Given a <a class="el" href="classcrashpad_1_1ProcessSnapshot.html" title="An abstract interface to a snapshot representing the state of a process.">ProcessSnapshot</a>, returns a map of key-value pairs to use as HTTP form parameters for upload to a Breakpad crash report colleciton server. <a href="namespacecrashpad.html#a63faa5e791871a34f458e2e3995389df">More...</a><br /></td></tr>
<tr class="separator:a63faa5e791871a34f458e2e3995389df"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af0004297cf46f8fd00258e02a4bcf13a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#af0004297cf46f8fd00258e02a4bcf13a">AddUserExtensionStreams</a> (const UserStreamDataSources *user_stream_data_sources, <a class="el" href="classcrashpad_1_1ProcessSnapshot.html">ProcessSnapshot</a> *process_snapshot, <a class="el" href="classcrashpad_1_1MinidumpFileWriter.html">MinidumpFileWriter</a> *minidump_file_writer)</td></tr>
<tr class="memdesc:af0004297cf46f8fd00258e02a4bcf13a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Adds user extension streams to a minidump. <a href="namespacecrashpad.html#af0004297cf46f8fd00258e02a4bcf13a">More...</a><br /></td></tr>
<tr class="separator:af0004297cf46f8fd00258e02a4bcf13a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a58169a74e32daa2888614fcd2f2381ce"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#a58169a74e32daa2888614fcd2f2381ce">BuildMinidumpThreadIDMap</a> (const std::vector&lt; const <a class="el" href="classcrashpad_1_1ThreadSnapshot.html">ThreadSnapshot</a> * &gt; &amp;thread_snapshots, <a class="el" href="namespacecrashpad.html#ae426d8c91f5448aaf543f91478d831da">MinidumpThreadIDMap</a> *thread_id_map)</td></tr>
<tr class="memdesc:a58169a74e32daa2888614fcd2f2381ce"><td class="mdescLeft">&#160;</td><td class="mdescRight">Builds a MinidumpThreadIDMap for a group of <a class="el" href="classcrashpad_1_1ThreadSnapshot.html" title="An abstract interface to a snapshot representing a thread (lightweight process) present in a snapshot...">ThreadSnapshot</a> objects. <a href="namespacecrashpad.html#a58169a74e32daa2888614fcd2f2381ce">More...</a><br /></td></tr>
<tr class="separator:a58169a74e32daa2888614fcd2f2381ce"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad14ca679827f9eac8b99f6833f314b4c"><td class="memItemLeft" align="right" valign="top"><a id="ad14ca679827f9eac8b99f6833f314b4c"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>DEFINE_GETTER</b> (<a class="el" href="namespacecrashpad.html#a3b405c19a5787fabcfba96001d49f292">TriState</a>, SystemCrashReporterForwarding, system_crash_reporter_forwarding) DEFINE_GETTER(<a class="el" href="namespacecrashpad.html#a3b405c19a5787fabcfba96001d49f292">TriState</a></td></tr>
<tr class="separator:ad14ca679827f9eac8b99f6833f314b4c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a15355d6a3c2b9d06f9a15397c8c534eb"><td class="memItemLeft" align="right" valign="top"><a id="a15355d6a3c2b9d06f9a15397c8c534eb"></a>
gather_indirectly_referenced_memory&#160;</td><td class="memItemRight" valign="bottom"><b>DEFINE_GETTER</b> (uint32_t, IndirectlyReferencedMemoryCap, indirectly_referenced_memory_cap) DEFINE_GETTER(<a class="el" href="namespacecrashpad.html#af2d003bfc8632755c60ab27bd6d1c8ae">VMAddress</a></td></tr>
<tr class="separator:a15355d6a3c2b9d06f9a15397c8c534eb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a39018ef46b1323a94b6b53d3f5669d94"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#a39018ef46b1323a94b6b53d3f5669d94">IsMalformedCLKernelsModule</a> (uint32_t mach_o_file_type, const std::string &amp;module_name, bool *has_timestamp)</td></tr>
<tr class="memdesc:a39018ef46b1323a94b6b53d3f5669d94"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determines whether a module appears to be a malformed OpenCL <code>cl_kernels</code> module based on its name and Mach-O file type. <a href="namespacecrashpad.html#a39018ef46b1323a94b6b53d3f5669d94">More...</a><br /></td></tr>
<tr class="separator:a39018ef46b1323a94b6b53d3f5669d94"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acb7b5be59c1293af50753130136aeb32"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#acb7b5be59c1293af50753130136aeb32">LoggingDetermineMergedRange</a> (const <a class="el" href="classcrashpad_1_1MemorySnapshot.html">MemorySnapshot</a> *a, const <a class="el" href="classcrashpad_1_1MemorySnapshot.html">MemorySnapshot</a> *b, <a class="el" href="classcrashpad_1_1CheckedRange.html">CheckedRange</a>&lt; uint64_t, size_t &gt; *merged)</td></tr>
<tr class="memdesc:acb7b5be59c1293af50753130136aeb32"><td class="mdescLeft">&#160;</td><td class="mdescRight">Given two memory snapshots, checks if they're overlapping or abutting, and if so, returns the result of merging the two ranges. <a href="namespacecrashpad.html#acb7b5be59c1293af50753130136aeb32">More...</a><br /></td></tr>
<tr class="separator:acb7b5be59c1293af50753130136aeb32"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8f17bed131c46938ca08241eebd5b520"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#a8f17bed131c46938ca08241eebd5b520">DetermineMergedRange</a> (const <a class="el" href="classcrashpad_1_1MemorySnapshot.html">MemorySnapshot</a> *a, const <a class="el" href="classcrashpad_1_1MemorySnapshot.html">MemorySnapshot</a> *b, <a class="el" href="classcrashpad_1_1CheckedRange.html">CheckedRange</a>&lt; uint64_t, size_t &gt; *merged)</td></tr>
<tr class="memdesc:a8f17bed131c46938ca08241eebd5b520"><td class="mdescLeft">&#160;</td><td class="mdescRight">The same as LoggingDetermineMergedRange but with no errors logged. <a href="namespacecrashpad.html#a8f17bed131c46938ca08241eebd5b520">More...</a><br /></td></tr>
<tr class="separator:a8f17bed131c46938ca08241eebd5b520"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9c33155413280cfd8ae286e732012ee5"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#a9c33155413280cfd8ae286e732012ee5">ReadAnnotationsWhitelist</a> (const <a class="el" href="classcrashpad_1_1ProcessMemoryRange.html">ProcessMemoryRange</a> &amp;memory, <a class="el" href="namespacecrashpad.html#af2d003bfc8632755c60ab27bd6d1c8ae">VMAddress</a> whitelist_address, std::vector&lt; std::string &gt; *whitelist)</td></tr>
<tr class="memdesc:a9c33155413280cfd8ae286e732012ee5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads an annotations whitelist from another process. <a href="namespacecrashpad.html#a9c33155413280cfd8ae286e732012ee5">More...</a><br /></td></tr>
<tr class="separator:a9c33155413280cfd8ae286e732012ee5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae9b85a5beab40e4e0dad138a26faa629"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#ae9b85a5beab40e4e0dad138a26faa629">ReadMemoryRangeWhitelist</a> (const <a class="el" href="classcrashpad_1_1ProcessMemoryRange.html">ProcessMemoryRange</a> &amp;memory, <a class="el" href="namespacecrashpad.html#af2d003bfc8632755c60ab27bd6d1c8ae">VMAddress</a> whitelist_address, std::vector&lt; std::pair&lt; <a class="el" href="namespacecrashpad.html#af2d003bfc8632755c60ab27bd6d1c8ae">VMAddress</a>, <a class="el" href="namespacecrashpad.html#af2d003bfc8632755c60ab27bd6d1c8ae">VMAddress</a> &gt;&gt; *whitelist)</td></tr>
<tr class="memdesc:ae9b85a5beab40e4e0dad138a26faa629"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads a memory range whitelist from another process. <a href="namespacecrashpad.html#ae9b85a5beab40e4e0dad138a26faa629">More...</a><br /></td></tr>
<tr class="separator:ae9b85a5beab40e4e0dad138a26faa629"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae24e1ae9b86058543755d67f7b9f4507"><td class="memItemLeft" align="right" valign="top"><a id="ae24e1ae9b86058543755d67f7b9f4507"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#ae24e1ae9b86058543755d67f7b9f4507">InitializeX86Context</a> (const CONTEXT &amp;context, <a class="el" href="structcrashpad_1_1CPUContextX86.html">CPUContextX86</a> *out)</td></tr>
<tr class="memdesc:ae24e1ae9b86058543755d67f7b9f4507"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes a <a class="el" href="structcrashpad_1_1CPUContextX86.html" title="A context structure carrying 32-bit x86 CPU state.">CPUContextX86</a> structure from a native context structure on Windows. <br /></td></tr>
<tr class="separator:ae24e1ae9b86058543755d67f7b9f4507"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5fc668a00f655e2ca484a3cd6f88e938"><td class="memItemLeft" align="right" valign="top"><a id="a5fc668a00f655e2ca484a3cd6f88e938"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#a5fc668a00f655e2ca484a3cd6f88e938">InitializeX86Context</a> (const WOW64_CONTEXT &amp;context, <a class="el" href="structcrashpad_1_1CPUContextX86.html">CPUContextX86</a> *out)</td></tr>
<tr class="memdesc:a5fc668a00f655e2ca484a3cd6f88e938"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes a <a class="el" href="structcrashpad_1_1CPUContextX86.html" title="A context structure carrying 32-bit x86 CPU state.">CPUContextX86</a> structure from a native context structure on Windows. <br /></td></tr>
<tr class="separator:a5fc668a00f655e2ca484a3cd6f88e938"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1841e343addd4079444c944116d6df77"><td class="memItemLeft" align="right" valign="top"><a id="a1841e343addd4079444c944116d6df77"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#a1841e343addd4079444c944116d6df77">InitializeX64Context</a> (const CONTEXT &amp;context, <a class="el" href="structcrashpad_1_1CPUContextX86__64.html">CPUContextX86_64</a> *out)</td></tr>
<tr class="memdesc:a1841e343addd4079444c944116d6df77"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes a <a class="el" href="structcrashpad_1_1CPUContextX86__64.html" title="A context structure carrying x86_64 CPU state.">CPUContextX86_64</a> structure from a native context structure on Windows. <br /></td></tr>
<tr class="separator:a1841e343addd4079444c944116d6df77"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aabc2596ffebd6dacc7f516c546e156e2"><td class="memItemLeft" align="right" valign="top"><a id="aabc2596ffebd6dacc7f516c546e156e2"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#aabc2596ffebd6dacc7f516c546e156e2">InitializeARM64Context</a> (const CONTEXT &amp;context, <a class="el" href="structcrashpad_1_1CPUContextARM64.html">CPUContextARM64</a> *out)</td></tr>
<tr class="memdesc:aabc2596ffebd6dacc7f516c546e156e2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes a <a class="el" href="structcrashpad_1_1CPUContextARM64.html" title="A context structure carrying ARM64 CPU state.">CPUContextARM64</a> structure from a native context structure on Windows. <br /></td></tr>
<tr class="separator:aabc2596ffebd6dacc7f516c546e156e2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a743f7c71d235eb21a742679a639f6aa7"><td class="memItemLeft" align="right" valign="top"><a id="a743f7c71d235eb21a742679a639f6aa7"></a>
template bool&#160;</td><td class="memItemRight" valign="bottom"><b>PEImageReader::GetCrashpadInfo&lt; process_types::internal::Traits32 &gt;</b> (<a class="el" href="structcrashpad_1_1process__types_1_1CrashpadInfo.html">process_types::CrashpadInfo</a>&lt; <a class="el" href="structcrashpad_1_1process__types_1_1internal_1_1Traits32.html">process_types::internal::Traits32</a> &gt; *crashpad_info) const</td></tr>
<tr class="separator:a743f7c71d235eb21a742679a639f6aa7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0a621015141b7331ca152909781cc29a"><td class="memItemLeft" align="right" valign="top"><a id="a0a621015141b7331ca152909781cc29a"></a>
template bool&#160;</td><td class="memItemRight" valign="bottom"><b>PEImageReader::GetCrashpadInfo&lt; process_types::internal::Traits64 &gt;</b> (<a class="el" href="structcrashpad_1_1process__types_1_1CrashpadInfo.html">process_types::CrashpadInfo</a>&lt; <a class="el" href="structcrashpad_1_1process__types_1_1internal_1_1Traits64.html">process_types::internal::Traits64</a> &gt; *crashpad_info) const</td></tr>
<tr class="separator:a0a621015141b7331ca152909781cc29a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6e685af255d9b71fb46ed2679329dd7c"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#a6e685af255d9b71fb46ed2679329dd7c">ReadFileExactly</a> (<a class="el" href="namespacecrashpad.html#a07f8e33c4fdeba3783277f9f2563e48a">FileHandle</a> file, void *buffer, size_t size)</td></tr>
<tr class="memdesc:a6e685af255d9b71fb46ed2679329dd7c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Wraps <a class="el" href="namespacecrashpad.html#a8599600814a17d622766decd5f122a96" title="Reads from a file, retrying when interrupted before reading any data on POSIX.">ReadFile()</a>, retrying following a short read, ensuring that exactly <em>size</em> bytes are read. <a href="namespacecrashpad.html#a6e685af255d9b71fb46ed2679329dd7c">More...</a><br /></td></tr>
<tr class="separator:a6e685af255d9b71fb46ed2679329dd7c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac3fb8955565f605e08c1e30562fbdb7a"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#ac3fb8955565f605e08c1e30562fbdb7a">LoggingReadFileExactly</a> (<a class="el" href="namespacecrashpad.html#a07f8e33c4fdeba3783277f9f2563e48a">FileHandle</a> file, void *buffer, size_t size)</td></tr>
<tr class="memdesc:ac3fb8955565f605e08c1e30562fbdb7a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Wraps <a class="el" href="namespacecrashpad.html#a8599600814a17d622766decd5f122a96" title="Reads from a file, retrying when interrupted before reading any data on POSIX.">ReadFile()</a>, retrying following a short read, ensuring that exactly <em>size</em> bytes are read. <a href="namespacecrashpad.html#ac3fb8955565f605e08c1e30562fbdb7a">More...</a><br /></td></tr>
<tr class="separator:ac3fb8955565f605e08c1e30562fbdb7a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ada530c306bf30e9ed9274c20d05c0db4"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#ada530c306bf30e9ed9274c20d05c0db4">WriteFile</a> (<a class="el" href="namespacecrashpad.html#a07f8e33c4fdeba3783277f9f2563e48a">FileHandle</a> file, const void *buffer, size_t size)</td></tr>
<tr class="memdesc:ada530c306bf30e9ed9274c20d05c0db4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Writes to a file, retrying when interrupted on POSIX or following a short write. <a href="namespacecrashpad.html#ada530c306bf30e9ed9274c20d05c0db4">More...</a><br /></td></tr>
<tr class="separator:ada530c306bf30e9ed9274c20d05c0db4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8a91af9c690d2a280c463596bf82070b"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#a8a91af9c690d2a280c463596bf82070b">LoggingWriteFile</a> (<a class="el" href="namespacecrashpad.html#a07f8e33c4fdeba3783277f9f2563e48a">FileHandle</a> file, const void *buffer, size_t size)</td></tr>
<tr class="memdesc:a8a91af9c690d2a280c463596bf82070b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Wraps <a class="el" href="namespacecrashpad.html#ada530c306bf30e9ed9274c20d05c0db4" title="Writes to a file, retrying when interrupted on POSIX or following a short write.">WriteFile()</a>, ensuring that exactly <em>size</em> bytes are written. <a href="namespacecrashpad.html#a8a91af9c690d2a280c463596bf82070b">More...</a><br /></td></tr>
<tr class="separator:a8a91af9c690d2a280c463596bf82070b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a00e03e19185b0fde6301be6b113628cb"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#a00e03e19185b0fde6301be6b113628cb">CheckedReadFileExactly</a> (<a class="el" href="namespacecrashpad.html#a07f8e33c4fdeba3783277f9f2563e48a">FileHandle</a> file, void *buffer, size_t size)</td></tr>
<tr class="memdesc:a00e03e19185b0fde6301be6b113628cb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Wraps <a class="el" href="namespacecrashpad.html#a8599600814a17d622766decd5f122a96" title="Reads from a file, retrying when interrupted before reading any data on POSIX.">ReadFile()</a>, ensuring that exactly <em>size</em> bytes are read. <a href="namespacecrashpad.html#a00e03e19185b0fde6301be6b113628cb">More...</a><br /></td></tr>
<tr class="separator:a00e03e19185b0fde6301be6b113628cb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a74c74fefa3b1f5e0c1b885755c9f9cf6"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#a74c74fefa3b1f5e0c1b885755c9f9cf6">CheckedWriteFile</a> (<a class="el" href="namespacecrashpad.html#a07f8e33c4fdeba3783277f9f2563e48a">FileHandle</a> file, const void *buffer, size_t size)</td></tr>
<tr class="memdesc:a74c74fefa3b1f5e0c1b885755c9f9cf6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Wraps <a class="el" href="namespacecrashpad.html#ada530c306bf30e9ed9274c20d05c0db4" title="Writes to a file, retrying when interrupted on POSIX or following a short write.">WriteFile()</a>, ensuring that exactly <em>size</em> bytes are written. <a href="namespacecrashpad.html#a74c74fefa3b1f5e0c1b885755c9f9cf6">More...</a><br /></td></tr>
<tr class="separator:a74c74fefa3b1f5e0c1b885755c9f9cf6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac8e7e1b1a4b89b489964ffee54d0d9df"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#ac8e7e1b1a4b89b489964ffee54d0d9df">CheckedReadFileAtEOF</a> (<a class="el" href="namespacecrashpad.html#a07f8e33c4fdeba3783277f9f2563e48a">FileHandle</a> file)</td></tr>
<tr class="memdesc:ac8e7e1b1a4b89b489964ffee54d0d9df"><td class="mdescLeft">&#160;</td><td class="mdescRight">Wraps <a class="el" href="namespacecrashpad.html#a8599600814a17d622766decd5f122a96" title="Reads from a file, retrying when interrupted before reading any data on POSIX.">ReadFile()</a>, ensuring that it indicates end-of-file. <a href="namespacecrashpad.html#ac8e7e1b1a4b89b489964ffee54d0d9df">More...</a><br /></td></tr>
<tr class="separator:ac8e7e1b1a4b89b489964ffee54d0d9df"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae52dab87e27350dd4c70ea4c8ac258cc"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#ae52dab87e27350dd4c70ea4c8ac258cc">LoggingReadToEOF</a> (<a class="el" href="namespacecrashpad.html#a07f8e33c4fdeba3783277f9f2563e48a">FileHandle</a> file, std::string *contents)</td></tr>
<tr class="memdesc:ae52dab87e27350dd4c70ea4c8ac258cc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Wraps <a class="el" href="namespacecrashpad.html#a8599600814a17d622766decd5f122a96" title="Reads from a file, retrying when interrupted before reading any data on POSIX.">ReadFile()</a> to read from the current file position to the end of the file into <em>contents</em>. <a href="namespacecrashpad.html#ae52dab87e27350dd4c70ea4c8ac258cc">More...</a><br /></td></tr>
<tr class="separator:ae52dab87e27350dd4c70ea4c8ac258cc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a300ac399f9d33a4c47b4e4c148ebbe7c"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#a300ac399f9d33a4c47b4e4c148ebbe7c">LoggingReadEntireFile</a> (const base::FilePath &amp;path, std::string *contents)</td></tr>
<tr class="memdesc:a300ac399f9d33a4c47b4e4c148ebbe7c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Wraps <a class="el" href="namespacecrashpad.html#ab3712d59104f641109b170c78a912b4d" title="Wraps OpenFileForRead(), logging an error if the operation fails.">LoggingOpenFileForRead()</a> and <a class="el" href="namespacecrashpad.html#a8599600814a17d622766decd5f122a96" title="Reads from a file, retrying when interrupted before reading any data on POSIX.">ReadFile()</a> reading the entire file into <em>contents</em>. <a href="namespacecrashpad.html#a300ac399f9d33a4c47b4e4c148ebbe7c">More...</a><br /></td></tr>
<tr class="separator:a300ac399f9d33a4c47b4e4c148ebbe7c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac7cb2e4837a6fda169cbe92d1603460f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#ac7cb2e4837a6fda169cbe92d1603460f">CheckedCloseFile</a> (<a class="el" href="namespacecrashpad.html#a07f8e33c4fdeba3783277f9f2563e48a">FileHandle</a> file)</td></tr>
<tr class="memdesc:ac7cb2e4837a6fda169cbe92d1603460f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Wraps <code>close()</code> or <code>CloseHandle()</code>, ensuring that it succeeds. <a href="namespacecrashpad.html#ac7cb2e4837a6fda169cbe92d1603460f">More...</a><br /></td></tr>
<tr class="separator:ac7cb2e4837a6fda169cbe92d1603460f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8599600814a17d622766decd5f122a96"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacecrashpad.html#a25465a3a2d289a06addf93c346c6f917">FileOperationResult</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#a8599600814a17d622766decd5f122a96">ReadFile</a> (<a class="el" href="namespacecrashpad.html#a07f8e33c4fdeba3783277f9f2563e48a">FileHandle</a> file, void *buffer, size_t size)</td></tr>
<tr class="memdesc:a8599600814a17d622766decd5f122a96"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads from a file, retrying when interrupted before reading any data on POSIX. <a href="namespacecrashpad.html#a8599600814a17d622766decd5f122a96">More...</a><br /></td></tr>
<tr class="separator:a8599600814a17d622766decd5f122a96"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7987df05e1260e6d8d93ee3a21e9b0eb"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacecrashpad.html#a07f8e33c4fdeba3783277f9f2563e48a">FileHandle</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#a7987df05e1260e6d8d93ee3a21e9b0eb">OpenFileForRead</a> (const base::FilePath &amp;path)</td></tr>
<tr class="memdesc:a7987df05e1260e6d8d93ee3a21e9b0eb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Wraps <code>open()</code> or <code>CreateFile()</code>, opening an existing file for reading. <a href="namespacecrashpad.html#a7987df05e1260e6d8d93ee3a21e9b0eb">More...</a><br /></td></tr>
<tr class="separator:a7987df05e1260e6d8d93ee3a21e9b0eb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad8e8848af82384f7757108c8c445f18d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacecrashpad.html#a07f8e33c4fdeba3783277f9f2563e48a">FileHandle</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#ad8e8848af82384f7757108c8c445f18d">OpenFileForWrite</a> (const base::FilePath &amp;path, <a class="el" href="namespacecrashpad.html#afa69b0967d9a6df659ff5d2a02ff3e51">FileWriteMode</a> mode, <a class="el" href="namespacecrashpad.html#a034ccc90eb0d1f587ee89275d822175d">FilePermissions</a> permissions)</td></tr>
<tr class="memdesc:ad8e8848af82384f7757108c8c445f18d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Wraps <code>open()</code> or <code>CreateFile()</code>, creating a file for output. <a href="namespacecrashpad.html#ad8e8848af82384f7757108c8c445f18d">More...</a><br /></td></tr>
<tr class="separator:ad8e8848af82384f7757108c8c445f18d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abe6238b18be49921772c14dd25a624de"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacecrashpad.html#a07f8e33c4fdeba3783277f9f2563e48a">FileHandle</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#abe6238b18be49921772c14dd25a624de">OpenFileForReadAndWrite</a> (const base::FilePath &amp;path, <a class="el" href="namespacecrashpad.html#afa69b0967d9a6df659ff5d2a02ff3e51">FileWriteMode</a> mode, <a class="el" href="namespacecrashpad.html#a034ccc90eb0d1f587ee89275d822175d">FilePermissions</a> permissions)</td></tr>
<tr class="memdesc:abe6238b18be49921772c14dd25a624de"><td class="mdescLeft">&#160;</td><td class="mdescRight">Wraps <code>open()</code> or <code>CreateFile()</code>, creating a file for both input and output. <a href="namespacecrashpad.html#abe6238b18be49921772c14dd25a624de">More...</a><br /></td></tr>
<tr class="separator:abe6238b18be49921772c14dd25a624de"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab3712d59104f641109b170c78a912b4d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacecrashpad.html#a07f8e33c4fdeba3783277f9f2563e48a">FileHandle</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#ab3712d59104f641109b170c78a912b4d">LoggingOpenFileForRead</a> (const base::FilePath &amp;path)</td></tr>
<tr class="memdesc:ab3712d59104f641109b170c78a912b4d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Wraps <a class="el" href="namespacecrashpad.html#a7987df05e1260e6d8d93ee3a21e9b0eb" title="Wraps open() or CreateFile(), opening an existing file for reading.">OpenFileForRead()</a>, logging an error if the operation fails. <a href="namespacecrashpad.html#ab3712d59104f641109b170c78a912b4d">More...</a><br /></td></tr>
<tr class="separator:ab3712d59104f641109b170c78a912b4d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a62fc6876cc0c660f0ea8bd1dd0a07e82"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacecrashpad.html#a07f8e33c4fdeba3783277f9f2563e48a">FileHandle</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#a62fc6876cc0c660f0ea8bd1dd0a07e82">LoggingOpenFileForWrite</a> (const base::FilePath &amp;path, <a class="el" href="namespacecrashpad.html#afa69b0967d9a6df659ff5d2a02ff3e51">FileWriteMode</a> mode, <a class="el" href="namespacecrashpad.html#a034ccc90eb0d1f587ee89275d822175d">FilePermissions</a> permissions)</td></tr>
<tr class="memdesc:a62fc6876cc0c660f0ea8bd1dd0a07e82"><td class="mdescLeft">&#160;</td><td class="mdescRight">Wraps <a class="el" href="namespacecrashpad.html#ad8e8848af82384f7757108c8c445f18d" title="Wraps open() or CreateFile(), creating a file for output.">OpenFileForWrite()</a>, logging an error if the operation fails. <a href="namespacecrashpad.html#a62fc6876cc0c660f0ea8bd1dd0a07e82">More...</a><br /></td></tr>
<tr class="separator:a62fc6876cc0c660f0ea8bd1dd0a07e82"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aab3e964bdba04aaf74e7a27a36efe108"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacecrashpad.html#a07f8e33c4fdeba3783277f9f2563e48a">FileHandle</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#aab3e964bdba04aaf74e7a27a36efe108">LoggingOpenFileForReadAndWrite</a> (const base::FilePath &amp;path, <a class="el" href="namespacecrashpad.html#afa69b0967d9a6df659ff5d2a02ff3e51">FileWriteMode</a> mode, <a class="el" href="namespacecrashpad.html#a034ccc90eb0d1f587ee89275d822175d">FilePermissions</a> permissions)</td></tr>
<tr class="memdesc:aab3e964bdba04aaf74e7a27a36efe108"><td class="mdescLeft">&#160;</td><td class="mdescRight">Wraps <a class="el" href="namespacecrashpad.html#abe6238b18be49921772c14dd25a624de" title="Wraps open() or CreateFile(), creating a file for both input and output.">OpenFileForReadAndWrite()</a>, logging an error if the operation fails. <a href="namespacecrashpad.html#aab3e964bdba04aaf74e7a27a36efe108">More...</a><br /></td></tr>
<tr class="separator:aab3e964bdba04aaf74e7a27a36efe108"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acd02263566d8c43fc7886f88a13b364f"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#acd02263566d8c43fc7886f88a13b364f">LoggingLockFile</a> (<a class="el" href="namespacecrashpad.html#a07f8e33c4fdeba3783277f9f2563e48a">FileHandle</a> file, <a class="el" href="namespacecrashpad.html#a3753a95b02e5c96c6e20017e467cef07">FileLocking</a> locking)</td></tr>
<tr class="memdesc:acd02263566d8c43fc7886f88a13b364f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Locks the given <em>file</em> using <code>flock()</code> on POSIX or <code>LockFileEx()</code> on Windows. <a href="namespacecrashpad.html#acd02263566d8c43fc7886f88a13b364f">More...</a><br /></td></tr>
<tr class="separator:acd02263566d8c43fc7886f88a13b364f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a15c1f3a2c6f04e944fdca12e22b0cb6e"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#a15c1f3a2c6f04e944fdca12e22b0cb6e">LoggingUnlockFile</a> (<a class="el" href="namespacecrashpad.html#a07f8e33c4fdeba3783277f9f2563e48a">FileHandle</a> file)</td></tr>
<tr class="memdesc:a15c1f3a2c6f04e944fdca12e22b0cb6e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Unlocks a file previously locked with <a class="el" href="namespacecrashpad.html#acd02263566d8c43fc7886f88a13b364f" title="Locks the given file using flock() on POSIX or LockFileEx() on Windows.">LoggingLockFile()</a>. <a href="namespacecrashpad.html#a15c1f3a2c6f04e944fdca12e22b0cb6e">More...</a><br /></td></tr>
<tr class="separator:a15c1f3a2c6f04e944fdca12e22b0cb6e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3d6cedc10e24145d4a0c1000c33f8a10"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacecrashpad.html#a1e53a1957d9edcba8b406ea632b6daf2">FileOffset</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#a3d6cedc10e24145d4a0c1000c33f8a10">LoggingSeekFile</a> (<a class="el" href="namespacecrashpad.html#a07f8e33c4fdeba3783277f9f2563e48a">FileHandle</a> file, <a class="el" href="namespacecrashpad.html#a1e53a1957d9edcba8b406ea632b6daf2">FileOffset</a> offset, int whence)</td></tr>
<tr class="memdesc:a3d6cedc10e24145d4a0c1000c33f8a10"><td class="mdescLeft">&#160;</td><td class="mdescRight">Wraps <code>lseek()</code> or <code>SetFilePointerEx()</code>. Logs an error if the operation fails. <a href="namespacecrashpad.html#a3d6cedc10e24145d4a0c1000c33f8a10">More...</a><br /></td></tr>
<tr class="separator:a3d6cedc10e24145d4a0c1000c33f8a10"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a06ba30c1a4b2974f1d4ea842db55b068"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#a06ba30c1a4b2974f1d4ea842db55b068">LoggingTruncateFile</a> (<a class="el" href="namespacecrashpad.html#a07f8e33c4fdeba3783277f9f2563e48a">FileHandle</a> file)</td></tr>
<tr class="memdesc:a06ba30c1a4b2974f1d4ea842db55b068"><td class="mdescLeft">&#160;</td><td class="mdescRight">Truncates the given <em>file</em> to zero bytes in length. <a href="namespacecrashpad.html#a06ba30c1a4b2974f1d4ea842db55b068">More...</a><br /></td></tr>
<tr class="separator:a06ba30c1a4b2974f1d4ea842db55b068"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab9db00544fd57cfde0bb03d32b989221"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#ab9db00544fd57cfde0bb03d32b989221">LoggingCloseFile</a> (<a class="el" href="namespacecrashpad.html#a07f8e33c4fdeba3783277f9f2563e48a">FileHandle</a> file)</td></tr>
<tr class="memdesc:ab9db00544fd57cfde0bb03d32b989221"><td class="mdescLeft">&#160;</td><td class="mdescRight">Wraps <code>close()</code> or <code>CloseHandle()</code>, logging an error if the operation fails. <a href="namespacecrashpad.html#ab9db00544fd57cfde0bb03d32b989221">More...</a><br /></td></tr>
<tr class="separator:ab9db00544fd57cfde0bb03d32b989221"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0224d5a689cdb8c2315c255fd6ea6b5c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacecrashpad.html#a1e53a1957d9edcba8b406ea632b6daf2">FileOffset</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#a0224d5a689cdb8c2315c255fd6ea6b5c">LoggingFileSizeByHandle</a> (<a class="el" href="namespacecrashpad.html#a07f8e33c4fdeba3783277f9f2563e48a">FileHandle</a> file)</td></tr>
<tr class="memdesc:a0224d5a689cdb8c2315c255fd6ea6b5c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determines the size of a file. <a href="namespacecrashpad.html#a0224d5a689cdb8c2315c255fd6ea6b5c">More...</a><br /></td></tr>
<tr class="separator:a0224d5a689cdb8c2315c255fd6ea6b5c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac6eccc3b9b90d2dd74048a43c9002e88"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacecrashpad.html#a07f8e33c4fdeba3783277f9f2563e48a">FileHandle</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#ac6eccc3b9b90d2dd74048a43c9002e88">StdioFileHandle</a> (<a class="el" href="namespacecrashpad.html#a8402ddae562db04a8daf6bffecaded5b">StdioStream</a> stdio_stream)</td></tr>
<tr class="memdesc:ac6eccc3b9b90d2dd74048a43c9002e88"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a FileHandle corresponding to the requested standard I/O stream. <a href="namespacecrashpad.html#ac6eccc3b9b90d2dd74048a43c9002e88">More...</a><br /></td></tr>
<tr class="separator:ac6eccc3b9b90d2dd74048a43c9002e88"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a229b9a82773f5497a0f0c74aae3b8b3a"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#a229b9a82773f5497a0f0c74aae3b8b3a">FileModificationTime</a> (const base::FilePath &amp;path, timespec *mtime)</td></tr>
<tr class="memdesc:a229b9a82773f5497a0f0c74aae3b8b3a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determines the modification time for a file, directory, or symbolic link, logging a message on failure. <a href="namespacecrashpad.html#a229b9a82773f5497a0f0c74aae3b8b3a">More...</a><br /></td></tr>
<tr class="separator:a229b9a82773f5497a0f0c74aae3b8b3a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7ae84cd353b237bfdf698d40da521568"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#a7ae84cd353b237bfdf698d40da521568">LoggingCreateDirectory</a> (const base::FilePath &amp;path, <a class="el" href="namespacecrashpad.html#a034ccc90eb0d1f587ee89275d822175d">FilePermissions</a> permissions, bool may_reuse)</td></tr>
<tr class="memdesc:a7ae84cd353b237bfdf698d40da521568"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a directory, logging a message on failure. <a href="namespacecrashpad.html#a7ae84cd353b237bfdf698d40da521568">More...</a><br /></td></tr>
<tr class="separator:a7ae84cd353b237bfdf698d40da521568"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7e5ef254327bfa348cc23cd21893b29e"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#a7e5ef254327bfa348cc23cd21893b29e">MoveFileOrDirectory</a> (const base::FilePath &amp;source, const base::FilePath &amp;dest)</td></tr>
<tr class="memdesc:a7e5ef254327bfa348cc23cd21893b29e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Moves a file, symbolic link, or directory, logging a message on failure. <a href="namespacecrashpad.html#a7e5ef254327bfa348cc23cd21893b29e">More...</a><br /></td></tr>
<tr class="separator:a7e5ef254327bfa348cc23cd21893b29e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3c69205d3a470099d1489f71cbfe7ba6"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#a3c69205d3a470099d1489f71cbfe7ba6">IsRegularFile</a> (const base::FilePath &amp;path)</td></tr>
<tr class="memdesc:a3c69205d3a470099d1489f71cbfe7ba6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determines if a path refers to a regular file, logging a message on failure. <a href="namespacecrashpad.html#a3c69205d3a470099d1489f71cbfe7ba6">More...</a><br /></td></tr>
<tr class="separator:a3c69205d3a470099d1489f71cbfe7ba6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af12fac7cddd34499234ca6617e3e3aa3"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#af12fac7cddd34499234ca6617e3e3aa3">IsDirectory</a> (const base::FilePath &amp;path, bool allow_symlinks)</td></tr>
<tr class="memdesc:af12fac7cddd34499234ca6617e3e3aa3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determines if a path refers to a directory, logging a message on failure. <a href="namespacecrashpad.html#af12fac7cddd34499234ca6617e3e3aa3">More...</a><br /></td></tr>
<tr class="separator:af12fac7cddd34499234ca6617e3e3aa3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac7c5ccd8661bd87eed66eae26fb9e0d3"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#ac7c5ccd8661bd87eed66eae26fb9e0d3">LoggingRemoveFile</a> (const base::FilePath &amp;path)</td></tr>
<tr class="memdesc:ac7c5ccd8661bd87eed66eae26fb9e0d3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Removes a file or a symbolic link to a file or directory, logging a message on failure. <a href="namespacecrashpad.html#ac7c5ccd8661bd87eed66eae26fb9e0d3">More...</a><br /></td></tr>
<tr class="separator:ac7c5ccd8661bd87eed66eae26fb9e0d3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7fdc84fcc207cf0b718626997d11ad04"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#a7fdc84fcc207cf0b718626997d11ad04">LoggingRemoveDirectory</a> (const base::FilePath &amp;path)</td></tr>
<tr class="memdesc:a7fdc84fcc207cf0b718626997d11ad04"><td class="mdescLeft">&#160;</td><td class="mdescRight">Non-recurseively removes an empty directory, logging a message on failure. <a href="namespacecrashpad.html#a7fdc84fcc207cf0b718626997d11ad04">More...</a><br /></td></tr>
<tr class="separator:a7fdc84fcc207cf0b718626997d11ad04"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4f31c2f8b1cfea873b757dc486281437"><td class="memItemLeft" align="right" valign="top">std::vector&lt; zx_koid_t &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#a4f31c2f8b1cfea873b757dc486281437">GetChildKoids</a> (const zx::object_base &amp;parent, zx_object_info_topic_t child_kind)</td></tr>
<tr class="memdesc:a4f31c2f8b1cfea873b757dc486281437"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get a list of child koids for a parent handle. <a href="namespacecrashpad.html#a4f31c2f8b1cfea873b757dc486281437">More...</a><br /></td></tr>
<tr class="separator:a4f31c2f8b1cfea873b757dc486281437"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1b88f2d030f9da088707bc361045ff86"><td class="memItemLeft" align="right" valign="top">std::vector&lt; zx::thread &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#a1b88f2d030f9da088707bc361045ff86">GetThreadHandles</a> (const zx::process &amp;parent)</td></tr>
<tr class="memdesc:a1b88f2d030f9da088707bc361045ff86"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get handles representing a list of child objects of a given parent. <a href="namespacecrashpad.html#a1b88f2d030f9da088707bc361045ff86">More...</a><br /></td></tr>
<tr class="separator:a1b88f2d030f9da088707bc361045ff86"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a24450f6cd81133935420337540b4d62b"><td class="memItemLeft" align="right" valign="top">std::vector&lt; zx::thread &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#a24450f6cd81133935420337540b4d62b">GetHandlesForThreadKoids</a> (const zx::process &amp;parent, const std::vector&lt; zx_koid_t &gt; &amp;koids)</td></tr>
<tr class="memdesc:a24450f6cd81133935420337540b4d62b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert a list of koids that are all children of a particular process into thread handles. <a href="namespacecrashpad.html#a24450f6cd81133935420337540b4d62b">More...</a><br /></td></tr>
<tr class="separator:a24450f6cd81133935420337540b4d62b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae99a5273dd73373a439df42cc39a8da0"><td class="memItemLeft" align="right" valign="top">zx::thread&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#ae99a5273dd73373a439df42cc39a8da0">GetThreadHandleByKoid</a> (const zx::process &amp;parent, zx_koid_t child_koid)</td></tr>
<tr class="memdesc:ae99a5273dd73373a439df42cc39a8da0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Retrieve the handle of a process' thread, based on koid. <a href="namespacecrashpad.html#ae99a5273dd73373a439df42cc39a8da0">More...</a><br /></td></tr>
<tr class="separator:ae99a5273dd73373a439df42cc39a8da0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa78f92ab17c2ca6a7a86edc949ac1fde"><td class="memItemLeft" align="right" valign="top">zx_koid_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#aa78f92ab17c2ca6a7a86edc949ac1fde">GetKoidForHandle</a> (const zx::object_base &amp;object)</td></tr>
<tr class="memdesc:aa78f92ab17c2ca6a7a86edc949ac1fde"><td class="mdescLeft">&#160;</td><td class="mdescRight">Retrieves the koid for a given object handle. <a href="namespacecrashpad.html#aa78f92ab17c2ca6a7a86edc949ac1fde">More...</a><br /></td></tr>
<tr class="separator:aa78f92ab17c2ca6a7a86edc949ac1fde"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a35ae4d5046f62fec51622484585405a4"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#a35ae4d5046f62fec51622484585405a4">InstallObjcExceptionPreprocessor</a> ()</td></tr>
<tr class="memdesc:a35ae4d5046f62fec51622484585405a4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Installs the Objective-C exception preprocessor. <a href="namespacecrashpad.html#a35ae4d5046f62fec51622484585405a4">More...</a><br /></td></tr>
<tr class="separator:a35ae4d5046f62fec51622484585405a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a73e92fe8e499b33a1478d98549ffea11"><td class="memItemLeft" align="right" valign="top"><a id="a73e92fe8e499b33a1478d98549ffea11"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>UninstallObjcExceptionPreprocessor</b> ()</td></tr>
<tr class="separator:a73e92fe8e499b33a1478d98549ffea11"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2a2e6f185467f42cb17ce959a13cc482"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#a2a2e6f185467f42cb17ce959a13cc482">InitializeSignalDispositions</a> ()</td></tr>
<tr class="memdesc:a2a2e6f185467f42cb17ce959a13cc482"><td class="mdescLeft">&#160;</td><td class="mdescRight">Establishes signal dispositions for a process based on the platform. <a href="namespacecrashpad.html#a2a2e6f185467f42cb17ce959a13cc482">More...</a><br /></td></tr>
<tr class="separator:a2a2e6f185467f42cb17ce959a13cc482"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae93766162f8810f02d1891951937aede"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#ae93766162f8810f02d1891951937aede">ReadThreadIDs</a> (pid_t pid, std::vector&lt; pid_t &gt; *tids)</td></tr>
<tr class="memdesc:ae93766162f8810f02d1891951937aede"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enumerates the thread IDs of a process by reading <code>/proc/<em>pid</em>/task</code>. <a href="namespacecrashpad.html#ae93766162f8810f02d1891951937aede">More...</a><br /></td></tr>
<tr class="separator:ae93766162f8810f02d1891951937aede"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a616ed0784021ecbd2f0f14b7e75c068c"><td class="memItemLeft" align="right" valign="top">launch_data_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#a616ed0784021ecbd2f0f14b7e75c068c">CFPropertyToLaunchData</a> (CFPropertyListRef property_cf)</td></tr>
<tr class="memdesc:a616ed0784021ecbd2f0f14b7e75c068c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts a Core Foundation-type property list to a launchd-type <code>launch_data_t</code>. <a href="namespacecrashpad.html#a616ed0784021ecbd2f0f14b7e75c068c">More...</a><br /></td></tr>
<tr class="separator:a616ed0784021ecbd2f0f14b7e75c068c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab05052e02f3c3605fd7bae0f006d2cba"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#ab05052e02f3c3605fd7bae0f006d2cba">MacOSXMinorVersion</a> ()</td></tr>
<tr class="memdesc:ab05052e02f3c3605fd7bae0f006d2cba"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the version of the running operating system. <a href="namespacecrashpad.html#ab05052e02f3c3605fd7bae0f006d2cba">More...</a><br /></td></tr>
<tr class="separator:ab05052e02f3c3605fd7bae0f006d2cba"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a99a833f0c39ce203b49862367494a923"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#a99a833f0c39ce203b49862367494a923">MacOSXVersion</a> (int *major, int *minor, int *bugfix, std::string *build, bool *server, std::string *version_string)</td></tr>
<tr class="memdesc:a99a833f0c39ce203b49862367494a923"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the version of the running operating system. <a href="namespacecrashpad.html#a99a833f0c39ce203b49862367494a923">More...</a><br /></td></tr>
<tr class="separator:a99a833f0c39ce203b49862367494a923"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a71c79500b827d06b190e30b7cc016c35"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#a71c79500b827d06b190e30b7cc016c35">MacModelAndBoard</a> (std::string *model, std::string *board_id)</td></tr>
<tr class="memdesc:a71c79500b827d06b190e30b7cc016c35"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the model name and board ID of the running system. <a href="namespacecrashpad.html#a71c79500b827d06b190e30b7cc016c35">More...</a><br /></td></tr>
<tr class="separator:a71c79500b827d06b190e30b7cc016c35"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a97ebbbac4c7f27e2e3ba2b9c080ed0f3"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#a97ebbbac4c7f27e2e3ba2b9c080ed0f3">ServiceManagementSubmitJob</a> (CFDictionaryRef job_cf)</td></tr>
<tr class="memdesc:a97ebbbac4c7f27e2e3ba2b9c080ed0f3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Submits a job to the user launchd domain as in <code>SMJobSubmit()</code>. <a href="namespacecrashpad.html#a97ebbbac4c7f27e2e3ba2b9c080ed0f3">More...</a><br /></td></tr>
<tr class="separator:a97ebbbac4c7f27e2e3ba2b9c080ed0f3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8cc130fecf996b7d7c76a56200afccb1"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#a8cc130fecf996b7d7c76a56200afccb1">ServiceManagementRemoveJob</a> (const std::string &amp;label, bool wait)</td></tr>
<tr class="memdesc:a8cc130fecf996b7d7c76a56200afccb1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Removes a job from the user launchd domain as in <code>SMJobRemove()</code>. <a href="namespacecrashpad.html#a8cc130fecf996b7d7c76a56200afccb1">More...</a><br /></td></tr>
<tr class="separator:a8cc130fecf996b7d7c76a56200afccb1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aead5f04bd94549956a7f2826aeccf495"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#aead5f04bd94549956a7f2826aeccf495">ServiceManagementIsJobLoaded</a> (const std::string &amp;label)</td></tr>
<tr class="memdesc:aead5f04bd94549956a7f2826aeccf495"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determines whether a specified job is loaded in the user launchd domain. <a href="namespacecrashpad.html#aead5f04bd94549956a7f2826aeccf495">More...</a><br /></td></tr>
<tr class="separator:aead5f04bd94549956a7f2826aeccf495"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3bc3a94386dd27968d48619f42154463"><td class="memItemLeft" align="right" valign="top">pid_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#a3bc3a94386dd27968d48619f42154463">ServiceManagementIsJobRunning</a> (const std::string &amp;label)</td></tr>
<tr class="memdesc:a3bc3a94386dd27968d48619f42154463"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determines whether a specified job is running in the user launchd domain. <a href="namespacecrashpad.html#a3bc3a94386dd27968d48619f42154463">More...</a><br /></td></tr>
<tr class="separator:a3bc3a94386dd27968d48619f42154463"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac86f028e5f175cccfcab418346d7bcfe"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacecrashpad.html#a589b4d9bd6f2233b67148ab6793c3c13">XattrStatus</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#ac86f028e5f175cccfcab418346d7bcfe">ReadXattr</a> (const base::FilePath &amp;file, const base::StringPiece &amp;name, std::string *value)</td></tr>
<tr class="memdesc:ac86f028e5f175cccfcab418346d7bcfe"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads an extended attribute on a file. <a href="namespacecrashpad.html#ac86f028e5f175cccfcab418346d7bcfe">More...</a><br /></td></tr>
<tr class="separator:ac86f028e5f175cccfcab418346d7bcfe"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6842e0ae3110f04477765c771c04dc60"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#a6842e0ae3110f04477765c771c04dc60">WriteXattr</a> (const base::FilePath &amp;file, const base::StringPiece &amp;name, const std::string &amp;value)</td></tr>
<tr class="memdesc:a6842e0ae3110f04477765c771c04dc60"><td class="mdescLeft">&#160;</td><td class="mdescRight">Writes an extended attribute on a file. <a href="namespacecrashpad.html#a6842e0ae3110f04477765c771c04dc60">More...</a><br /></td></tr>
<tr class="separator:a6842e0ae3110f04477765c771c04dc60"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab8c682ff6d5f00ca828640a72436e196"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacecrashpad.html#a589b4d9bd6f2233b67148ab6793c3c13">XattrStatus</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#ab8c682ff6d5f00ca828640a72436e196">ReadXattrBool</a> (const base::FilePath &amp;file, const base::StringPiece &amp;name, bool *value)</td></tr>
<tr class="memdesc:ab8c682ff6d5f00ca828640a72436e196"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads an extended attribute on a file. <a href="namespacecrashpad.html#ab8c682ff6d5f00ca828640a72436e196">More...</a><br /></td></tr>
<tr class="separator:ab8c682ff6d5f00ca828640a72436e196"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae086861e350e7225e4ea065d941e664f"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#ae086861e350e7225e4ea065d941e664f">WriteXattrBool</a> (const base::FilePath &amp;file, const base::StringPiece &amp;name, bool value)</td></tr>
<tr class="memdesc:ae086861e350e7225e4ea065d941e664f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Writes an extended attribute on a file. <a href="namespacecrashpad.html#ae086861e350e7225e4ea065d941e664f">More...</a><br /></td></tr>
<tr class="separator:ae086861e350e7225e4ea065d941e664f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0c28700ce2629c13b5b8bb1392625ef4"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacecrashpad.html#a589b4d9bd6f2233b67148ab6793c3c13">XattrStatus</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#a0c28700ce2629c13b5b8bb1392625ef4">ReadXattrInt</a> (const base::FilePath &amp;file, const base::StringPiece &amp;name, int *value)</td></tr>
<tr class="memdesc:a0c28700ce2629c13b5b8bb1392625ef4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads an extended attribute on a file. <a href="namespacecrashpad.html#a0c28700ce2629c13b5b8bb1392625ef4">More...</a><br /></td></tr>
<tr class="separator:a0c28700ce2629c13b5b8bb1392625ef4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a85a3551184d900a1d970bd8fa0be0ec3"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#a85a3551184d900a1d970bd8fa0be0ec3">WriteXattrInt</a> (const base::FilePath &amp;file, const base::StringPiece &amp;name, int value)</td></tr>
<tr class="memdesc:a85a3551184d900a1d970bd8fa0be0ec3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Writes an extended attribute on a file. <a href="namespacecrashpad.html#a85a3551184d900a1d970bd8fa0be0ec3">More...</a><br /></td></tr>
<tr class="separator:a85a3551184d900a1d970bd8fa0be0ec3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a71572c94f27aba3f34938d3a0d9030a3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacecrashpad.html#a589b4d9bd6f2233b67148ab6793c3c13">XattrStatus</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#a71572c94f27aba3f34938d3a0d9030a3">ReadXattrTimeT</a> (const base::FilePath &amp;file, const base::StringPiece &amp;name, time_t *value)</td></tr>
<tr class="memdesc:a71572c94f27aba3f34938d3a0d9030a3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads an extended attribute on a file. <a href="namespacecrashpad.html#a71572c94f27aba3f34938d3a0d9030a3">More...</a><br /></td></tr>
<tr class="separator:a71572c94f27aba3f34938d3a0d9030a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae63f9a1eeeec00b78c216f72b1ca1327"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#ae63f9a1eeeec00b78c216f72b1ca1327">WriteXattrTimeT</a> (const base::FilePath &amp;file, const base::StringPiece &amp;name, time_t value)</td></tr>
<tr class="memdesc:ae63f9a1eeeec00b78c216f72b1ca1327"><td class="mdescLeft">&#160;</td><td class="mdescRight">Writes an extended attribute on a file. <a href="namespacecrashpad.html#ae63f9a1eeeec00b78c216f72b1ca1327">More...</a><br /></td></tr>
<tr class="separator:ae63f9a1eeeec00b78c216f72b1ca1327"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a354d84b9ce60fa7d437c2ee6f58ea05f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacecrashpad.html#a589b4d9bd6f2233b67148ab6793c3c13">XattrStatus</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#a354d84b9ce60fa7d437c2ee6f58ea05f">RemoveXattr</a> (const base::FilePath &amp;file, const base::StringPiece &amp;name)</td></tr>
<tr class="memdesc:a354d84b9ce60fa7d437c2ee6f58ea05f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Removes an extended attribute from a file. <a href="namespacecrashpad.html#a354d84b9ce60fa7d437c2ee6f58ea05f">More...</a><br /></td></tr>
<tr class="separator:a354d84b9ce60fa7d437c2ee6f58ea05f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af63980b36cac449785c26cee00c89205"><td class="memItemLeft" align="right" valign="top">base::mac::ScopedMachReceiveRight&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#af63980b36cac449785c26cee00c89205">BootstrapCheckIn</a> (const std::string &amp;service_name)</td></tr>
<tr class="memdesc:af63980b36cac449785c26cee00c89205"><td class="mdescLeft">&#160;</td><td class="mdescRight">Makes a <code>boostrap_check_in()</code> call to the process’ bootstrap server. <a href="namespacecrashpad.html#af63980b36cac449785c26cee00c89205">More...</a><br /></td></tr>
<tr class="separator:af63980b36cac449785c26cee00c89205"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a32e6cb4455e49ede76dab41a256962ee"><td class="memItemLeft" align="right" valign="top">base::mac::ScopedMachSendRight&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#a32e6cb4455e49ede76dab41a256962ee">BootstrapLookUp</a> (const std::string &amp;service_name)</td></tr>
<tr class="memdesc:a32e6cb4455e49ede76dab41a256962ee"><td class="mdescLeft">&#160;</td><td class="mdescRight">Makes a <code>boostrap_look_up()</code> call to the process’ bootstrap server. <a href="namespacecrashpad.html#a32e6cb4455e49ede76dab41a256962ee">More...</a><br /></td></tr>
<tr class="separator:a32e6cb4455e49ede76dab41a256962ee"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a47204f3a62646651e8f393cac2a6316b"><td class="memItemLeft" align="right" valign="top">base::mac::ScopedMachSendRight&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#a47204f3a62646651e8f393cac2a6316b">SystemCrashReporterHandler</a> ()</td></tr>
<tr class="memdesc:a47204f3a62646651e8f393cac2a6316b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Obtains the system’s default Mach exception handler for crash-type exceptions. <a href="namespacecrashpad.html#a47204f3a62646651e8f393cac2a6316b">More...</a><br /></td></tr>
<tr class="separator:a47204f3a62646651e8f393cac2a6316b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a34001ec0bfa5e0815fa478a8cf025c61"><td class="memItemLeft" align="right" valign="top">kern_return_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#a34001ec0bfa5e0815fa478a8cf025c61">UniversalExceptionRaise</a> (exception_behavior_t behavior, exception_handler_t exception_port, thread_t thread, task_t task, exception_type_t exception, const mach_exception_data_type_t *code, mach_msg_type_number_t code_count, thread_state_flavor_t *flavor, <a class="el" href="namespacecrashpad.html#a72fa9ea632f7f1ec93ec3c1b1d300db6">ConstThreadState</a> old_state, mach_msg_type_number_t old_state_count, thread_state_t new_state, mach_msg_type_number_t *new_state_count)</td></tr>
<tr class="memdesc:a34001ec0bfa5e0815fa478a8cf025c61"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calls the appropriate <code>*exception_raise*()</code> function for the specified <em>behavior</em>. <a href="namespacecrashpad.html#a34001ec0bfa5e0815fa478a8cf025c61">More...</a><br /></td></tr>
<tr class="separator:a34001ec0bfa5e0815fa478a8cf025c61"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2112e7fcb6a2fc7f9b6b0ff8856e8466"><td class="memItemLeft" align="right" valign="top">kern_return_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#a2112e7fcb6a2fc7f9b6b0ff8856e8466">ExcServerSuccessfulReturnValue</a> (exception_type_t exception, exception_behavior_t behavior, bool set_thread_state)</td></tr>
<tr class="memdesc:a2112e7fcb6a2fc7f9b6b0ff8856e8466"><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes an approriate successful return value for an exception handler function. <a href="namespacecrashpad.html#a2112e7fcb6a2fc7f9b6b0ff8856e8466">More...</a><br /></td></tr>
<tr class="separator:a2112e7fcb6a2fc7f9b6b0ff8856e8466"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac192440e1d208f5dd348f0cba652d93a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#ac192440e1d208f5dd348f0cba652d93a">ExcServerCopyState</a> (exception_behavior_t behavior, <a class="el" href="namespacecrashpad.html#a72fa9ea632f7f1ec93ec3c1b1d300db6">ConstThreadState</a> old_state, mach_msg_type_number_t old_state_count, thread_state_t new_state, mach_msg_type_number_t *new_state_count)</td></tr>
<tr class="memdesc:ac192440e1d208f5dd348f0cba652d93a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copies the old state to the new state for state-carrying exceptions. <a href="namespacecrashpad.html#ac192440e1d208f5dd348f0cba652d93a">More...</a><br /></td></tr>
<tr class="separator:ac192440e1d208f5dd348f0cba652d93a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acea6434eb784ccde471620e9d79ba8c1"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#acea6434eb784ccde471620e9d79ba8c1">ExceptionBehaviorHasState</a> (exception_behavior_t behavior)</td></tr>
<tr class="memdesc:acea6434eb784ccde471620e9d79ba8c1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determines whether <em>behavior</em> indicates an exception behavior that carries thread state information. <a href="namespacecrashpad.html#acea6434eb784ccde471620e9d79ba8c1">More...</a><br /></td></tr>
<tr class="separator:acea6434eb784ccde471620e9d79ba8c1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5d424769dc3683b809a9783f9319d4ab"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#a5d424769dc3683b809a9783f9319d4ab">ExceptionBehaviorHasIdentity</a> (exception_behavior_t behavior)</td></tr>
<tr class="memdesc:a5d424769dc3683b809a9783f9319d4ab"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determines whether <em>behavior</em> indicates an exception behavior that carries thread and task identities. <a href="namespacecrashpad.html#a5d424769dc3683b809a9783f9319d4ab">More...</a><br /></td></tr>
<tr class="separator:a5d424769dc3683b809a9783f9319d4ab"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6cd35f65144317021b4ea09a2b779bfb"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#a6cd35f65144317021b4ea09a2b779bfb">ExceptionBehaviorHasMachExceptionCodes</a> (exception_behavior_t behavior)</td></tr>
<tr class="memdesc:a6cd35f65144317021b4ea09a2b779bfb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determines whether <em>behavior</em> indicates an exception behavior that carries 64-bit exception codes (“Mach exception codes”). <a href="namespacecrashpad.html#a6cd35f65144317021b4ea09a2b779bfb">More...</a><br /></td></tr>
<tr class="separator:a6cd35f65144317021b4ea09a2b779bfb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2e26b5b9a8355ab15063b1c07fa6dff7"><td class="memItemLeft" align="right" valign="top">exception_behavior_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#a2e26b5b9a8355ab15063b1c07fa6dff7">ExceptionBehaviorBasic</a> (exception_behavior_t behavior)</td></tr>
<tr class="memdesc:a2e26b5b9a8355ab15063b1c07fa6dff7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the basic behavior value of <em>behavior</em>, its value without <code>MACH_EXCEPTION_CODES</code> set. <a href="namespacecrashpad.html#a2e26b5b9a8355ab15063b1c07fa6dff7">More...</a><br /></td></tr>
<tr class="separator:a2e26b5b9a8355ab15063b1c07fa6dff7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a830c754edaa401f7d866e69369f76ae1"><td class="memItemLeft" align="right" valign="top">exception_type_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#a830c754edaa401f7d866e69369f76ae1">ExcCrashRecoverOriginalException</a> (mach_exception_code_t code_0, mach_exception_code_t *original_code_0, int *signal)</td></tr>
<tr class="memdesc:a830c754edaa401f7d866e69369f76ae1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Recovers the original exception, first exception code, and signal from the encoded form of the first exception code delivered with <code>EXC_CRASH</code> exceptions. <a href="namespacecrashpad.html#a830c754edaa401f7d866e69369f76ae1">More...</a><br /></td></tr>
<tr class="separator:a830c754edaa401f7d866e69369f76ae1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a83c8325c451170f4d3fb883014656af3"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#a83c8325c451170f4d3fb883014656af3">ExcCrashCouldContainException</a> (exception_type_t exception)</td></tr>
<tr class="memdesc:a83c8325c451170f4d3fb883014656af3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determines whether a given exception type could plausibly be carried within an <code>EXC_CRASH</code> exception. <a href="namespacecrashpad.html#a83c8325c451170f4d3fb883014656af3">More...</a><br /></td></tr>
<tr class="separator:a83c8325c451170f4d3fb883014656af3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac448d0b014125dc8edd9c617836eb44c"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#ac448d0b014125dc8edd9c617836eb44c">ExceptionCodeForMetrics</a> (exception_type_t exception, mach_exception_code_t code_0)</td></tr>
<tr class="memdesc:ac448d0b014125dc8edd9c617836eb44c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the exception code to report via a configured metrics system. <a href="namespacecrashpad.html#ac448d0b014125dc8edd9c617836eb44c">More...</a><br /></td></tr>
<tr class="separator:ac448d0b014125dc8edd9c617836eb44c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad2ac0b9fe2a066fecac5e8d9b977e892"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#ad2ac0b9fe2a066fecac5e8d9b977e892">IsExceptionNonfatalResource</a> (exception_type_t exception, mach_exception_code_t code_0, pid_t pid)</td></tr>
<tr class="memdesc:ad2ac0b9fe2a066fecac5e8d9b977e892"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determines whether an exception is a non-fatal <code>EXC_RESOURCE</code>. <a href="namespacecrashpad.html#ad2ac0b9fe2a066fecac5e8d9b977e892">More...</a><br /></td></tr>
<tr class="separator:ad2ac0b9fe2a066fecac5e8d9b977e892"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a79ee9764b34c0267b58f54404946275a"><td class="memItemLeft" align="right" valign="top">thread_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#a79ee9764b34c0267b58f54404946275a">MachThreadSelf</a> ()</td></tr>
<tr class="memdesc:a79ee9764b34c0267b58f54404946275a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Like <code>mach_thread_self()</code>, but without the obligation to release the send right. <a href="namespacecrashpad.html#a79ee9764b34c0267b58f54404946275a">More...</a><br /></td></tr>
<tr class="separator:a79ee9764b34c0267b58f54404946275a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9c9bc6ad9973f794c425707617b63278"><td class="memItemLeft" align="right" valign="top">mach_port_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#a9c9bc6ad9973f794c425707617b63278">NewMachPort</a> (mach_port_right_t right)</td></tr>
<tr class="memdesc:a9c9bc6ad9973f794c425707617b63278"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a new Mach port in the current task. <a href="namespacecrashpad.html#a9c9bc6ad9973f794c425707617b63278">More...</a><br /></td></tr>
<tr class="separator:a9c9bc6ad9973f794c425707617b63278"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a194e0575e09db56e4107e1c41b27c941"><td class="memItemLeft" align="right" valign="top">exception_mask_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#a194e0575e09db56e4107e1c41b27c941">ExcMaskAll</a> ()</td></tr>
<tr class="memdesc:a194e0575e09db56e4107e1c41b27c941"><td class="mdescLeft">&#160;</td><td class="mdescRight">The value for <code>EXC_MASK_ALL</code> appropriate for the operating system at run time. <a href="namespacecrashpad.html#a194e0575e09db56e4107e1c41b27c941">More...</a><br /></td></tr>
<tr class="separator:a194e0575e09db56e4107e1c41b27c941"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a18e47623f33e0c86fef1d08a82b28cc9"><td class="memItemLeft" align="right" valign="top">exception_mask_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#a18e47623f33e0c86fef1d08a82b28cc9">ExcMaskValid</a> ()</td></tr>
<tr class="memdesc:a18e47623f33e0c86fef1d08a82b28cc9"><td class="mdescLeft">&#160;</td><td class="mdescRight">An exception mask containing every possible exception understood by the operating system at run time. <a href="namespacecrashpad.html#a18e47623f33e0c86fef1d08a82b28cc9">More...</a><br /></td></tr>
<tr class="separator:a18e47623f33e0c86fef1d08a82b28cc9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa31f495c675536bcb30d1267c3a9b696"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacecrashpad.html#a34f36473e385b19eb229798ab2f7210c">MachMessageDeadline</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#aa31f495c675536bcb30d1267c3a9b696">MachMessageDeadlineFromTimeout</a> (mach_msg_timeout_t timeout_ms)</td></tr>
<tr class="memdesc:aa31f495c675536bcb30d1267c3a9b696"><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes the deadline for a specified timeout value. <a href="namespacecrashpad.html#aa31f495c675536bcb30d1267c3a9b696">More...</a><br /></td></tr>
<tr class="separator:aa31f495c675536bcb30d1267c3a9b696"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a35293418a0b7637a00631807ac4b431e"><td class="memItemLeft" align="right" valign="top">mach_msg_return_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#a35293418a0b7637a00631807ac4b431e">MachMessageWithDeadline</a> (mach_msg_header_t *message, mach_msg_option_t options, mach_msg_size_t receive_size, mach_port_name_t receive_port, <a class="el" href="namespacecrashpad.html#a34f36473e385b19eb229798ab2f7210c">MachMessageDeadline</a> deadline, mach_port_name_t notify_port, bool run_even_if_expired)</td></tr>
<tr class="memdesc:a35293418a0b7637a00631807ac4b431e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Runs <code>mach_msg()</code> with a deadline, as opposed to a timeout. <a href="namespacecrashpad.html#a35293418a0b7637a00631807ac4b431e">More...</a><br /></td></tr>
<tr class="separator:a35293418a0b7637a00631807ac4b431e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2274adc0459f68b93ffe51d8f975f14e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#a2274adc0459f68b93ffe51d8f975f14e">PrepareMIGReplyFromRequest</a> (const mach_msg_header_t *in_header, mach_msg_header_t *out_header)</td></tr>
<tr class="memdesc:a2274adc0459f68b93ffe51d8f975f14e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes a reply message for a MIG server routine based on its corresponding request. <a href="namespacecrashpad.html#a2274adc0459f68b93ffe51d8f975f14e">More...</a><br /></td></tr>
<tr class="separator:a2274adc0459f68b93ffe51d8f975f14e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa023691aedd4f3e6faa923e8d2095947"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#aa023691aedd4f3e6faa923e8d2095947">SetMIGReplyError</a> (mach_msg_header_t *out_header, kern_return_t error)</td></tr>
<tr class="memdesc:aa023691aedd4f3e6faa923e8d2095947"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the error code in a reply message for a MIG server routine. <a href="namespacecrashpad.html#aa023691aedd4f3e6faa923e8d2095947">More...</a><br /></td></tr>
<tr class="separator:aa023691aedd4f3e6faa923e8d2095947"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a979ca1d327dcf56488d3304efa9680eb"><td class="memItemLeft" align="right" valign="top">const mach_msg_trailer_t *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#a979ca1d327dcf56488d3304efa9680eb">MachMessageTrailerFromHeader</a> (const mach_msg_header_t *header)</td></tr>
<tr class="memdesc:a979ca1d327dcf56488d3304efa9680eb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a Mach message trailer for a message that has been received. <a href="namespacecrashpad.html#a979ca1d327dcf56488d3304efa9680eb">More...</a><br /></td></tr>
<tr class="separator:a979ca1d327dcf56488d3304efa9680eb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2670a96d46f33b0e88db50a6222c0b47"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#a2670a96d46f33b0e88db50a6222c0b47">MachMessageDestroyReceivedPort</a> (mach_port_t port, mach_msg_type_name_t port_right_type)</td></tr>
<tr class="memdesc:a2670a96d46f33b0e88db50a6222c0b47"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destroys or deallocates a Mach port received in a Mach message. <a href="namespacecrashpad.html#a2670a96d46f33b0e88db50a6222c0b47">More...</a><br /></td></tr>
<tr class="separator:a2670a96d46f33b0e88db50a6222c0b47"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2c18eae8148ec3304733581a28c2da3b"><td class="memItemLeft" align="right" valign="top">pid_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#a2c18eae8148ec3304733581a28c2da3b">AuditPIDFromMachMessageTrailer</a> (const mach_msg_trailer_t *trailer)</td></tr>
<tr class="memdesc:a2c18eae8148ec3304733581a28c2da3b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the process ID of a Mach message’s sender from its audit trailer. <a href="namespacecrashpad.html#a2c18eae8148ec3304733581a28c2da3b">More...</a><br /></td></tr>
<tr class="separator:a2c18eae8148ec3304733581a28c2da3b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a05296bfd23550f42639067355410811e"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#a05296bfd23550f42639067355410811e">ExceptionToString</a> (exception_type_t exception, <a class="el" href="namespacecrashpad.html#a0f13feba965ef7750b3d49064936e5ee">SymbolicConstantToStringOptions</a> options)</td></tr>
<tr class="memdesc:a05296bfd23550f42639067355410811e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts a Mach exception value to a textual representation. <a href="namespacecrashpad.html#a05296bfd23550f42639067355410811e">More...</a><br /></td></tr>
<tr class="separator:a05296bfd23550f42639067355410811e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a229a9b5ddd24c6722e413e6132d0acf0"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#a229a9b5ddd24c6722e413e6132d0acf0">StringToException</a> (const base::StringPiece &amp;string, <a class="el" href="namespacecrashpad.html#a14f1de509869f929122998a2f88f08a6">StringToSymbolicConstantOptions</a> options, exception_type_t *exception)</td></tr>
<tr class="memdesc:a229a9b5ddd24c6722e413e6132d0acf0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts a string to its corresponding Mach exception value. <a href="namespacecrashpad.html#a229a9b5ddd24c6722e413e6132d0acf0">More...</a><br /></td></tr>
<tr class="separator:a229a9b5ddd24c6722e413e6132d0acf0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8ee31102507c0f75d82496dcd6f6b53b"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#a8ee31102507c0f75d82496dcd6f6b53b">ExceptionMaskToString</a> (exception_mask_t exception_mask, <a class="el" href="namespacecrashpad.html#a0f13feba965ef7750b3d49064936e5ee">SymbolicConstantToStringOptions</a> options)</td></tr>
<tr class="memdesc:a8ee31102507c0f75d82496dcd6f6b53b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts a Mach exception mask value to a textual representation. <a href="namespacecrashpad.html#a8ee31102507c0f75d82496dcd6f6b53b">More...</a><br /></td></tr>
<tr class="separator:a8ee31102507c0f75d82496dcd6f6b53b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7ab63868a738f3bfd4d2449e60607dec"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#a7ab63868a738f3bfd4d2449e60607dec">StringToExceptionMask</a> (const base::StringPiece &amp;string, <a class="el" href="namespacecrashpad.html#a14f1de509869f929122998a2f88f08a6">StringToSymbolicConstantOptions</a> options, exception_mask_t *exception_mask)</td></tr>
<tr class="memdesc:a7ab63868a738f3bfd4d2449e60607dec"><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts a string to its corresponding Mach exception mask value. <a href="namespacecrashpad.html#a7ab63868a738f3bfd4d2449e60607dec">More...</a><br /></td></tr>
<tr class="separator:a7ab63868a738f3bfd4d2449e60607dec"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a53fd131112ba6eba0d81467733a7643a"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#a53fd131112ba6eba0d81467733a7643a">ExceptionBehaviorToString</a> (exception_behavior_t behavior, <a class="el" href="namespacecrashpad.html#a0f13feba965ef7750b3d49064936e5ee">SymbolicConstantToStringOptions</a> options)</td></tr>
<tr class="memdesc:a53fd131112ba6eba0d81467733a7643a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts a Mach exception behavior value to a textual representation. <a href="namespacecrashpad.html#a53fd131112ba6eba0d81467733a7643a">More...</a><br /></td></tr>
<tr class="separator:a53fd131112ba6eba0d81467733a7643a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a957c7de6eb716bf1662c08333b1f7e21"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#a957c7de6eb716bf1662c08333b1f7e21">StringToExceptionBehavior</a> (const base::StringPiece &amp;string, <a class="el" href="namespacecrashpad.html#a14f1de509869f929122998a2f88f08a6">StringToSymbolicConstantOptions</a> options, exception_behavior_t *behavior)</td></tr>
<tr class="memdesc:a957c7de6eb716bf1662c08333b1f7e21"><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts a string to its corresponding Mach exception behavior value. <a href="namespacecrashpad.html#a957c7de6eb716bf1662c08333b1f7e21">More...</a><br /></td></tr>
<tr class="separator:a957c7de6eb716bf1662c08333b1f7e21"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a857f6b2f39cb21b22891242df26757e0"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#a857f6b2f39cb21b22891242df26757e0">ThreadStateFlavorToString</a> (thread_state_flavor_t flavor, <a class="el" href="namespacecrashpad.html#a0f13feba965ef7750b3d49064936e5ee">SymbolicConstantToStringOptions</a> options)</td></tr>
<tr class="memdesc:a857f6b2f39cb21b22891242df26757e0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts a thread state flavor value to a textual representation. <a href="namespacecrashpad.html#a857f6b2f39cb21b22891242df26757e0">More...</a><br /></td></tr>
<tr class="separator:a857f6b2f39cb21b22891242df26757e0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2fdb1f659a2813e80d5b644020a44208"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#a2fdb1f659a2813e80d5b644020a44208">StringToThreadStateFlavor</a> (const base::StringPiece &amp;string, <a class="el" href="namespacecrashpad.html#a14f1de509869f929122998a2f88f08a6">StringToSymbolicConstantOptions</a> options, thread_state_flavor_t *flavor)</td></tr>
<tr class="memdesc:a2fdb1f659a2813e80d5b644020a44208"><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts a string to its corresponding thread state flavor value. <a href="namespacecrashpad.html#a2fdb1f659a2813e80d5b644020a44208">More...</a><br /></td></tr>
<tr class="separator:a2fdb1f659a2813e80d5b644020a44208"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aeff94a266a84248b3ff0defae01efd8d"><td class="memItemLeft" align="right" valign="top">task_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#aeff94a266a84248b3ff0defae01efd8d">TaskForPID</a> (pid_t pid)</td></tr>
<tr class="memdesc:aeff94a266a84248b3ff0defae01efd8d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Wraps <code>task_for_pid()</code>. <a href="namespacecrashpad.html#aeff94a266a84248b3ff0defae01efd8d">More...</a><br /></td></tr>
<tr class="separator:aeff94a266a84248b3ff0defae01efd8d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae75f7444f96fb16bffd89e227159407f"><td class="memTemplParams" colspan="2">template&lt;typename From &gt; </td></tr>
<tr class="memitem:ae75f7444f96fb16bffd89e227159407f"><td class="memTemplItemLeft" align="right" valign="top">constexpr std::underlying_type&lt; From &gt;::type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#ae75f7444f96fb16bffd89e227159407f">AsUnderlyingType</a> (From from)</td></tr>
<tr class="memdesc:ae75f7444f96fb16bffd89e227159407f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Casts a value to its underlying type. <a href="namespacecrashpad.html#ae75f7444f96fb16bffd89e227159407f">More...</a><br /></td></tr>
<tr class="separator:ae75f7444f96fb16bffd89e227159407f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac25486c6b4c38fc7c7868e978094edcf"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#ac25486c6b4c38fc7c7868e978094edcf">CaptureContext</a> (NativeCPUContext *cpu_context)</td></tr>
<tr class="memdesc:ac25486c6b4c38fc7c7868e978094edcf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Saves the CPU context. <a href="namespacecrashpad.html#ac25486c6b4c38fc7c7868e978094edcf">More...</a><br /></td></tr>
<tr class="separator:ac25486c6b4c38fc7c7868e978094edcf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa93af751a4a09c316fb3de1a90e03fe8"><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#aa93af751a4a09c316fb3de1a90e03fe8">ClockMonotonicNanoseconds</a> ()</td></tr>
<tr class="memdesc:aa93af751a4a09c316fb3de1a90e03fe8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the value of the system’s monotonic clock. <a href="namespacecrashpad.html#aa93af751a4a09c316fb3de1a90e03fe8">More...</a><br /></td></tr>
<tr class="separator:aa93af751a4a09c316fb3de1a90e03fe8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8f1db976c6e43d3731c26df569368592"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#a8f1db976c6e43d3731c26df569368592">SleepNanoseconds</a> (uint64_t nanoseconds)</td></tr>
<tr class="memdesc:a8f1db976c6e43d3731c26df569368592"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sleeps for the specified duration. <a href="namespacecrashpad.html#a8f1db976c6e43d3731c26df569368592">More...</a><br /></td></tr>
<tr class="separator:a8f1db976c6e43d3731c26df569368592"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa84c4880b695542867ee6ac872f0f98f"><td class="memTemplParams" colspan="2">template&lt;typename To , typename From &gt; </td></tr>
<tr class="memitem:aa84c4880b695542867ee6ac872f0f98f"><td class="memTemplItemLeft" align="right" valign="top">&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#aa84c4880b695542867ee6ac872f0f98f">FromPointerCast</a> (From from)</td></tr>
<tr class="memdesc:aa84c4880b695542867ee6ac872f0f98f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Casts from a pointer type to an integer. <a href="namespacecrashpad.html#aa84c4880b695542867ee6ac872f0f98f">More...</a><br /></td></tr>
<tr class="separator:aa84c4880b695542867ee6ac872f0f98f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a97eb7be14f9f8d0aea6621fddbd4ff07"><td class="memTemplParams" colspan="2"><a id="a97eb7be14f9f8d0aea6621fddbd4ff07"></a>
template&lt;typename To , typename From &gt; </td></tr>
<tr class="memitem:a97eb7be14f9f8d0aea6621fddbd4ff07"><td class="memTemplItemLeft" align="right" valign="top">constexpr To&#160;</td><td class="memTemplItemRight" valign="bottom"><b>implicit_cast</b> (From const &amp;f)</td></tr>
<tr class="separator:a97eb7be14f9f8d0aea6621fddbd4ff07"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad37351a34cc3b9282a1f590062b5368d"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#ad37351a34cc3b9282a1f590062b5368d">AdvancePastPrefix</a> (const char **input, const char *pattern)</td></tr>
<tr class="memdesc:ad37351a34cc3b9282a1f590062b5368d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Match a pattern at the start of a char string. <a href="namespacecrashpad.html#ad37351a34cc3b9282a1f590062b5368d">More...</a><br /></td></tr>
<tr class="separator:ad37351a34cc3b9282a1f590062b5368d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2a2aeb6f5cc4e5b302c6da3141e1b9c4"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:a2a2aeb6f5cc4e5b302c6da3141e1b9c4"><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#a2a2aeb6f5cc4e5b302c6da3141e1b9c4">AdvancePastNumber</a> (const char **input, T *value)</td></tr>
<tr class="memdesc:a2a2aeb6f5cc4e5b302c6da3141e1b9c4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert a prefix of a char string to a numeric value. <a href="namespacecrashpad.html#a2a2aeb6f5cc4e5b302c6da3141e1b9c4">More...</a><br /></td></tr>
<tr class="separator:a2a2aeb6f5cc4e5b302c6da3141e1b9c4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0c27a6c1cd102df597d0c61b2416987b"><td class="memItemLeft" align="right" valign="top"><a id="a0c27a6c1cd102df597d0c61b2416987b"></a>
template bool&#160;</td><td class="memItemRight" valign="bottom"><b>AdvancePastNumber</b> (const char **input, int *value)</td></tr>
<tr class="separator:a0c27a6c1cd102df597d0c61b2416987b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ade7389c5df4bfa776ede4af3234b177f"><td class="memItemLeft" align="right" valign="top"><a id="ade7389c5df4bfa776ede4af3234b177f"></a>
template bool&#160;</td><td class="memItemRight" valign="bottom"><b>AdvancePastNumber</b> (const char **input, unsigned int *value)</td></tr>
<tr class="separator:ade7389c5df4bfa776ede4af3234b177f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5a8008ce6dd10c2d8584bc0c2472a0ab"><td class="memItemLeft" align="right" valign="top"><a id="a5a8008ce6dd10c2d8584bc0c2472a0ab"></a>
template bool&#160;</td><td class="memItemRight" valign="bottom"><b>AdvancePastNumber</b> (const char **input, int64_t *value)</td></tr>
<tr class="separator:a5a8008ce6dd10c2d8584bc0c2472a0ab"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aacb210d6ced91b270efd2380b325bb61"><td class="memItemLeft" align="right" valign="top"><a id="aacb210d6ced91b270efd2380b325bb61"></a>
template bool&#160;</td><td class="memItemRight" valign="bottom"><b>AdvancePastNumber</b> (const char **input, uint64_t *value)</td></tr>
<tr class="separator:aacb210d6ced91b270efd2380b325bb61"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab15d0aff86a0aafe6f33cbd8913441c7"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#ab15d0aff86a0aafe6f33cbd8913441c7">RandomString</a> ()</td></tr>
<tr class="memdesc:ab15d0aff86a0aafe6f33cbd8913441c7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a random string. <a href="namespacecrashpad.html#ab15d0aff86a0aafe6f33cbd8913441c7">More...</a><br /></td></tr>
<tr class="separator:ab15d0aff86a0aafe6f33cbd8913441c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a61b73837f43334046a1b56763fefba55"><td class="memTemplParams" colspan="2">template&lt;typename From , typename To &gt; </td></tr>
<tr class="memitem:a61b73837f43334046a1b56763fefba55"><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#a61b73837f43334046a1b56763fefba55">ReinterpretBytes</a> (const From &amp;from, To *to)</td></tr>
<tr class="memdesc:a61b73837f43334046a1b56763fefba55"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copies the bytes of <em>from</em> to <em>to</em>. <a href="namespacecrashpad.html#a61b73837f43334046a1b56763fefba55">More...</a><br /></td></tr>
<tr class="separator:a61b73837f43334046a1b56763fefba55"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a32471533814718469f9ecf23eaa74944"><td class="memItemLeft" align="right" valign="top"><a id="a32471533814718469f9ecf23eaa74944"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#a32471533814718469f9ecf23eaa74944">AddTimespec</a> (const timespec &amp;ts1, const timespec &amp;ts2, timespec *result)</td></tr>
<tr class="memdesc:a32471533814718469f9ecf23eaa74944"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add <code>timespec</code> <em>ts1</em> and <em>ts2</em> and return the result in <em>result</em>. <br /></td></tr>
<tr class="separator:a32471533814718469f9ecf23eaa74944"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a746883826dd3de7b677f0a6579b14269"><td class="memItemLeft" align="right" valign="top"><a id="a746883826dd3de7b677f0a6579b14269"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#a746883826dd3de7b677f0a6579b14269">SubtractTimespec</a> (const timespec &amp;ts1, const timespec &amp;ts2, timespec *result)</td></tr>
<tr class="memdesc:a746883826dd3de7b677f0a6579b14269"><td class="mdescLeft">&#160;</td><td class="mdescRight">Subtract <code>timespec</code> <em>ts2</em> from <em>ts1</em> and return the result in <em>result</em>. <br /></td></tr>
<tr class="separator:a746883826dd3de7b677f0a6579b14269"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6b7029dc1761d085612fdd6732d7130a"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#a6b7029dc1761d085612fdd6732d7130a">TimespecToTimeval</a> (const timespec &amp;ts, timeval *tv)</td></tr>
<tr class="memdesc:a6b7029dc1761d085612fdd6732d7130a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert the timespec <em>ts</em> to a timeval <em>tv</em>. <a href="namespacecrashpad.html#a6b7029dc1761d085612fdd6732d7130a">More...</a><br /></td></tr>
<tr class="separator:a6b7029dc1761d085612fdd6732d7130a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a038930079974fac8f61b6eda499a1054"><td class="memItemLeft" align="right" valign="top"><a id="a038930079974fac8f61b6eda499a1054"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#a038930079974fac8f61b6eda499a1054">TimevalToTimespec</a> (const timeval &amp;tv, timespec *ts)</td></tr>
<tr class="memdesc:a038930079974fac8f61b6eda499a1054"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert the timeval <em>tv</em> to a timespec <em>ts</em>. <br /></td></tr>
<tr class="separator:a038930079974fac8f61b6eda499a1054"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a53e91135de65a20af65aded0217d6406"><td class="memItemLeft" align="right" valign="top"><a id="a53e91135de65a20af65aded0217d6406"></a>
FILETIME&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#a53e91135de65a20af65aded0217d6406">TimespecToFiletimeEpoch</a> (const timespec &amp;ts)</td></tr>
<tr class="memdesc:a53e91135de65a20af65aded0217d6406"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert a <code>timespec</code> to a Windows <code>FILETIME</code>, converting from POSIX epoch to Windows epoch. <br /></td></tr>
<tr class="separator:a53e91135de65a20af65aded0217d6406"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4aab6472269d38857cd7c493b409cf3b"><td class="memItemLeft" align="right" valign="top"><a id="a4aab6472269d38857cd7c493b409cf3b"></a>
timespec&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#a4aab6472269d38857cd7c493b409cf3b">FiletimeToTimespecEpoch</a> (const FILETIME &amp;filetime)</td></tr>
<tr class="memdesc:a4aab6472269d38857cd7c493b409cf3b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert a Windows <code>FILETIME</code> to <code>timespec</code>, converting from Windows epoch to POSIX epoch. <br /></td></tr>
<tr class="separator:a4aab6472269d38857cd7c493b409cf3b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a12442a42a099c4b68211fd230e94f42c"><td class="memItemLeft" align="right" valign="top"><a id="a12442a42a099c4b68211fd230e94f42c"></a>
timeval&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#a12442a42a099c4b68211fd230e94f42c">FiletimeToTimevalEpoch</a> (const FILETIME &amp;filetime)</td></tr>
<tr class="memdesc:a12442a42a099c4b68211fd230e94f42c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert Windows <code>FILETIME</code> to <code>timeval</code>, converting from Windows epoch to POSIX epoch. <br /></td></tr>
<tr class="separator:a12442a42a099c4b68211fd230e94f42c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2597c6565e3733dceb0f933cea2146a1"><td class="memItemLeft" align="right" valign="top"><a id="a2597c6565e3733dceb0f933cea2146a1"></a>
timeval&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#a2597c6565e3733dceb0f933cea2146a1">FiletimeToTimevalInterval</a> (const FILETIME &amp;filetime)</td></tr>
<tr class="memdesc:a2597c6565e3733dceb0f933cea2146a1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert Windows <code>FILETIME</code> to <code>timeval</code>, treating the values as an interval of elapsed time. <br /></td></tr>
<tr class="separator:a2597c6565e3733dceb0f933cea2146a1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad150794de658f3bec7f37aa33ac521c4"><td class="memItemLeft" align="right" valign="top"><a id="ad150794de658f3bec7f37aa33ac521c4"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#ad150794de658f3bec7f37aa33ac521c4">GetTimeOfDay</a> (timeval *tv)</td></tr>
<tr class="memdesc:ad150794de658f3bec7f37aa33ac521c4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Similar to POSIX <code>gettimeofday()</code>, gets the current system time in UTC. <br /></td></tr>
<tr class="separator:ad150794de658f3bec7f37aa33ac521c4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a546d3f9feba8be654adc0292f99e043a"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#a546d3f9feba8be654adc0292f99e043a">GetBootTime</a> (timespec *ts)</td></tr>
<tr class="memdesc:a546d3f9feba8be654adc0292f99e043a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the kernel boot time. Subsequent calls to this function may return different results due to the system clock being changed or imprecision in measuring the boot time. <a href="namespacecrashpad.html#a546d3f9feba8be654adc0292f99e043a">More...</a><br /></td></tr>
<tr class="separator:a546d3f9feba8be654adc0292f99e043a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af9a547efca1b5ea53e95a3a12047c38a"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#af9a547efca1b5ea53e95a3a12047c38a">ZlibWindowBitsWithGzipWrapper</a> (int window_bits)</td></tr>
<tr class="memdesc:af9a547efca1b5ea53e95a3a12047c38a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Obtain a <em>window_bits</em> parameter to pass to <code>deflateInit2()</code> or <code>inflateInit2()</code> that specifies a <code>gzip</code> wrapper instead of the default zlib wrapper. <a href="namespacecrashpad.html#af9a547efca1b5ea53e95a3a12047c38a">More...</a><br /></td></tr>
<tr class="separator:af9a547efca1b5ea53e95a3a12047c38a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae0634eb0299cf5b28f7a373454d97c51"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#ae0634eb0299cf5b28f7a373454d97c51">ZlibErrorString</a> (int zr)</td></tr>
<tr class="memdesc:ae0634eb0299cf5b28f7a373454d97c51"><td class="mdescLeft">&#160;</td><td class="mdescRight">Formats a string for an error received from the zlib library. <a href="namespacecrashpad.html#ae0634eb0299cf5b28f7a373454d97c51">More...</a><br /></td></tr>
<tr class="separator:ae0634eb0299cf5b28f7a373454d97c51"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a16b771a34723da94fac698418232b1e2"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#a16b771a34723da94fac698418232b1e2">URLEncode</a> (const std::string &amp;url)</td></tr>
<tr class="memdesc:a16b771a34723da94fac698418232b1e2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Performs percent-encoding (URL encoding) on the input string, following RFC 3986 paragraph 2. <a href="namespacecrashpad.html#a16b771a34723da94fac698418232b1e2">More...</a><br /></td></tr>
<tr class="separator:a16b771a34723da94fac698418232b1e2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae89adfd6e277a5762f2e9b30e1af289e"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#ae89adfd6e277a5762f2e9b30e1af289e">CrackURL</a> (const std::string &amp;url, std::string *scheme, std::string *host, std::string *port, std::string *rest)</td></tr>
<tr class="memdesc:ae89adfd6e277a5762f2e9b30e1af289e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Crack a URL into component parts. <a href="namespacecrashpad.html#ae89adfd6e277a5762f2e9b30e1af289e">More...</a><br /></td></tr>
<tr class="separator:ae89adfd6e277a5762f2e9b30e1af289e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6e1b1c536af301cd418dad62348b1d29"><td class="memTemplParams" colspan="2">template&lt;typename Destination , typename Source &gt; </td></tr>
<tr class="memitem:a6e1b1c536af301cd418dad62348b1d29"><td class="memTemplItemLeft" align="right" valign="top">Destination&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#a6e1b1c536af301cd418dad62348b1d29">InRangeCast</a> (Source source, Destination default_value)</td></tr>
<tr class="memdesc:a6e1b1c536af301cd418dad62348b1d29"><td class="mdescLeft">&#160;</td><td class="mdescRight">Casts to a different type if it can be done without data loss, logging a warning message and returing a default value otherwise. <a href="namespacecrashpad.html#a6e1b1c536af301cd418dad62348b1d29">More...</a><br /></td></tr>
<tr class="separator:a6e1b1c536af301cd418dad62348b1d29"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aeb040202b4562c8c4087b9c9db2ce430"><td class="memTemplParams" colspan="2">template&lt;typename Destination , typename Source &gt; </td></tr>
<tr class="memitem:aeb040202b4562c8c4087b9c9db2ce430"><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#aeb040202b4562c8c4087b9c9db2ce430">AssignIfInRange</a> (Destination *destination, Source source)</td></tr>
<tr class="memdesc:aeb040202b4562c8c4087b9c9db2ce430"><td class="mdescLeft">&#160;</td><td class="mdescRight">Performs an assignment if it can be done safely, and signals if it cannot be done safely. <a href="namespacecrashpad.html#aeb040202b4562c8c4087b9c9db2ce430">More...</a><br /></td></tr>
<tr class="separator:aeb040202b4562c8c4087b9c9db2ce430"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a003f563ef0fe26081b4520012e0c1ef8"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#a003f563ef0fe26081b4520012e0c1ef8">CloseMultipleNowOrOnExec</a> (int fd, int preserve_fd)</td></tr>
<tr class="memdesc:a003f563ef0fe26081b4520012e0c1ef8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Close multiple file descriptors or mark them close-on-exec. <a href="namespacecrashpad.html#a003f563ef0fe26081b4520012e0c1ef8">More...</a><br /></td></tr>
<tr class="separator:a003f563ef0fe26081b4520012e0c1ef8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa8a3145ce95463d1638428b2547cde4d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#aa8a3145ce95463d1638428b2547cde4d">CloseStdinAndStdout</a> ()</td></tr>
<tr class="memdesc:aa8a3145ce95463d1638428b2547cde4d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Closes <code>stdin</code> and <code>stdout</code> by opening <code>/dev/null</code> over them. <a href="namespacecrashpad.html#aa8a3145ce95463d1638428b2547cde4d">More...</a><br /></td></tr>
<tr class="separator:aa8a3145ce95463d1638428b2547cde4d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6cabe8d54d1b428a28e5706dce256f43"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#a6cabe8d54d1b428a28e5706dce256f43">DoubleForkAndExec</a> (const std::vector&lt; std::string &gt; &amp;argv, const std::vector&lt; std::string &gt; *envp, int preserve_fd, bool use_path, void(*child_function)())</td></tr>
<tr class="memdesc:a6cabe8d54d1b428a28e5706dce256f43"><td class="mdescLeft">&#160;</td><td class="mdescRight">Executes a (grand-)child process. <a href="namespacecrashpad.html#a6cabe8d54d1b428a28e5706dce256f43">More...</a><br /></td></tr>
<tr class="separator:a6cabe8d54d1b428a28e5706dce256f43"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5e5ee7c62768446ceb8fa8a76db99952"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#a5e5ee7c62768446ceb8fa8a76db99952">DropPrivileges</a> ()</td></tr>
<tr class="memdesc:a5e5ee7c62768446ceb8fa8a76db99952"><td class="mdescLeft">&#160;</td><td class="mdescRight">Permanently drops privileges conferred by being a setuid or setgid executable. <a href="namespacecrashpad.html#a5e5ee7c62768446ceb8fa8a76db99952">More...</a><br /></td></tr>
<tr class="separator:a5e5ee7c62768446ceb8fa8a76db99952"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a97b946d80de148d1fd2452af38b220f4"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#a97b946d80de148d1fd2452af38b220f4">SignalToString</a> (int signal, <a class="el" href="namespacecrashpad.html#a0f13feba965ef7750b3d49064936e5ee">SymbolicConstantToStringOptions</a> options)</td></tr>
<tr class="memdesc:a97b946d80de148d1fd2452af38b220f4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts a POSIX signal value to a textual representation. <a href="namespacecrashpad.html#a97b946d80de148d1fd2452af38b220f4">More...</a><br /></td></tr>
<tr class="separator:a97b946d80de148d1fd2452af38b220f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6249dd58c6a81b300d64b25a943fa25c"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#a6249dd58c6a81b300d64b25a943fa25c">StringToSignal</a> (const base::StringPiece &amp;string, <a class="el" href="namespacecrashpad.html#a14f1de509869f929122998a2f88f08a6">StringToSymbolicConstantOptions</a> options, int *signal)</td></tr>
<tr class="memdesc:a6249dd58c6a81b300d64b25a943fa25c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts a string to its corresponding POSIX signal value. <a href="namespacecrashpad.html#a6249dd58c6a81b300d64b25a943fa25c">More...</a><br /></td></tr>
<tr class="separator:a6249dd58c6a81b300d64b25a943fa25c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab8be7196ea1ef43c438be47b1f3bbf57"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#ab8be7196ea1ef43c438be47b1f3bbf57">AlignedAllocate</a> (size_t alignment, size_t size)</td></tr>
<tr class="memdesc:ab8be7196ea1ef43c438be47b1f3bbf57"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocates memory with the specified alignment constraint. <a href="namespacecrashpad.html#ab8be7196ea1ef43c438be47b1f3bbf57">More...</a><br /></td></tr>
<tr class="separator:ab8be7196ea1ef43c438be47b1f3bbf57"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4d4cc77fb390eed171c11c6e06b78c85"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#a4d4cc77fb390eed171c11c6e06b78c85">AlignedFree</a> (void *pointer)</td></tr>
<tr class="memdesc:a4d4cc77fb390eed171c11c6e06b78c85"><td class="mdescLeft">&#160;</td><td class="mdescRight">Frees memory allocated by <a class="el" href="namespacecrashpad.html#ab8be7196ea1ef43c438be47b1f3bbf57" title="Allocates memory with the specified alignment constraint.">AlignedAllocate()</a>. <a href="namespacecrashpad.html#a4d4cc77fb390eed171c11c6e06b78c85">More...</a><br /></td></tr>
<tr class="separator:a4d4cc77fb390eed171c11c6e06b78c85"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8c02d0116a6584c2dbe07ccc932f1acf"><td class="memTemplParams" colspan="2"><a id="a8c02d0116a6584c2dbe07ccc932f1acf"></a>
template&lt;class T1 , class T2 , size_t Alignment&gt; </td></tr>
<tr class="memitem:a8c02d0116a6584c2dbe07ccc932f1acf"><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><b>operator==</b> (const <a class="el" href="structcrashpad_1_1AlignedAllocator.html">AlignedAllocator</a>&lt; T1, Alignment &gt; &amp;lhs, const <a class="el" href="structcrashpad_1_1AlignedAllocator.html">AlignedAllocator</a>&lt; T2, Alignment &gt; &amp;rhs) noexcept</td></tr>
<tr class="separator:a8c02d0116a6584c2dbe07ccc932f1acf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8cd5b93493013a882e5beb9f8bdc740d"><td class="memTemplParams" colspan="2"><a id="a8cd5b93493013a882e5beb9f8bdc740d"></a>
template&lt;class T1 , class T2 , size_t Alignment&gt; </td></tr>
<tr class="memitem:a8cd5b93493013a882e5beb9f8bdc740d"><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><b>operator!=</b> (const <a class="el" href="structcrashpad_1_1AlignedAllocator.html">AlignedAllocator</a>&lt; T1, Alignment &gt; &amp;lhs, const <a class="el" href="structcrashpad_1_1AlignedAllocator.html">AlignedAllocator</a>&lt; T2, Alignment &gt; &amp;rhs) noexcept</td></tr>
<tr class="separator:a8cd5b93493013a882e5beb9f8bdc740d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0486df983d8e9cecbe1e46e0059806df"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:a0486df983d8e9cecbe1e46e0059806df"><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#a0486df983d8e9cecbe1e46e0059806df">MapInsertOrReplace</a> (T *map, const typename T::key_type &amp;key, const typename T::mapped_type &amp;value, typename T::mapped_type *old_value)</td></tr>
<tr class="memdesc:a0486df983d8e9cecbe1e46e0059806df"><td class="mdescLeft">&#160;</td><td class="mdescRight">Inserts a mapping from <em>key</em> to <em>value</em> into <em>map</em>, or replaces an existing mapping so that <em>key</em> maps to <em>value</em>. <a href="namespacecrashpad.html#a0486df983d8e9cecbe1e46e0059806df">More...</a><br /></td></tr>
<tr class="separator:a0486df983d8e9cecbe1e46e0059806df"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab42fe62040bb628fb134573bb2131955"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#ab42fe62040bb628fb134573bb2131955">c16lcpy</a> (base::char16 *destination, const base::char16 *source, size_t length)</td></tr>
<tr class="memdesc:ab42fe62040bb628fb134573bb2131955"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy a <code>NUL</code>-terminated char16-based string to a fixed-size buffer. <a href="namespacecrashpad.html#ab42fe62040bb628fb134573bb2131955">More...</a><br /></td></tr>
<tr class="separator:ab42fe62040bb628fb134573bb2131955"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac8605dea4710c2630ccdd21439e05999"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#ac8605dea4710c2630ccdd21439e05999">strnlen</a> (const char *string, size_t max_length)</td></tr>
<tr class="memdesc:ac8605dea4710c2630ccdd21439e05999"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the length of a string, not to exceed a maximum. <a href="namespacecrashpad.html#ac8605dea4710c2630ccdd21439e05999">More...</a><br /></td></tr>
<tr class="separator:ac8605dea4710c2630ccdd21439e05999"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1b3aaf00fdc6fef366afb2a00062c97f"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#a1b3aaf00fdc6fef366afb2a00062c97f">SplitStringFirst</a> (const std::string &amp;string, char delimiter, std::string *left, std::string *right)</td></tr>
<tr class="memdesc:a1b3aaf00fdc6fef366afb2a00062c97f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Splits a string into two parts at the first delimiter found. <a href="namespacecrashpad.html#a1b3aaf00fdc6fef366afb2a00062c97f">More...</a><br /></td></tr>
<tr class="separator:a1b3aaf00fdc6fef366afb2a00062c97f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abb5d05de37d3f1a92ce36c3ce37842b7"><td class="memItemLeft" align="right" valign="top">std::vector&lt; std::string &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#abb5d05de37d3f1a92ce36c3ce37842b7">SplitString</a> (const std::string &amp;string, char delimiter)</td></tr>
<tr class="memdesc:abb5d05de37d3f1a92ce36c3ce37842b7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Splits a string into multiple parts on the given delimiter. <a href="namespacecrashpad.html#abb5d05de37d3f1a92ce36c3ce37842b7">More...</a><br /></td></tr>
<tr class="separator:abb5d05de37d3f1a92ce36c3ce37842b7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a52a7dee343e392e5bf1794e8136df7f9"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#a52a7dee343e392e5bf1794e8136df7f9">AppendCommandLineArgument</a> (const std::wstring &amp;argument, std::wstring *command_line)</td></tr>
<tr class="memdesc:a52a7dee343e392e5bf1794e8136df7f9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Utility function for building escaped command lines. <a href="namespacecrashpad.html#a52a7dee343e392e5bf1794e8136df7f9">More...</a><br /></td></tr>
<tr class="separator:a52a7dee343e392e5bf1794e8136df7f9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a113cbef71841533f5d9ad4b78f5127df"><td class="memItemLeft" align="right" valign="top"><a id="a113cbef71841533f5d9ad4b78f5127df"></a>
void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#a113cbef71841533f5d9ad4b78f5127df">ProgramCounterFromCONTEXT</a> (const CONTEXT *context)</td></tr>
<tr class="memdesc:a113cbef71841533f5d9ad4b78f5127df"><td class="mdescLeft">&#160;</td><td class="mdescRight">Retrieve program counter from <code>CONTEXT</code> structure for different architectures supported by Windows. <br /></td></tr>
<tr class="separator:a113cbef71841533f5d9ad4b78f5127df"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af8340c24a2983e788d2a3ba90d1d4846"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#af8340c24a2983e788d2a3ba90d1d4846">InitializeCriticalSectionWithDebugInfoIfPossible</a> (CRITICAL_SECTION *critical_section)</td></tr>
<tr class="memdesc:af8340c24a2983e788d2a3ba90d1d4846"><td class="mdescLeft">&#160;</td><td class="mdescRight">Equivalent to <code>InitializeCritialSection()</code>, but attempts to allocate with a valid <code>.DebugInfo</code> field on versions of Windows where it's possible to do so. <a href="namespacecrashpad.html#af8340c24a2983e788d2a3ba90d1d4846">More...</a><br /></td></tr>
<tr class="separator:af8340c24a2983e788d2a3ba90d1d4846"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3746e63a20ecf254ab6ec0a2a3fc9072"><td class="memItemLeft" align="right" valign="top"><a id="a3746e63a20ecf254ab6ec0a2a3fc9072"></a>
BOOL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#a3746e63a20ecf254ab6ec0a2a3fc9072">CrashpadGetModuleInformation</a> (HANDLE process, HMODULE module, MODULEINFO *module_info, DWORD cb)</td></tr>
<tr class="memdesc:a3746e63a20ecf254ab6ec0a2a3fc9072"><td class="mdescLeft">&#160;</td><td class="mdescRight">Proxy function for <code>GetModuleInformation()</code>. <br /></td></tr>
<tr class="separator:a3746e63a20ecf254ab6ec0a2a3fc9072"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae643b5c6bce4e11a0f51eb2f4d5fa1de"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#ae643b5c6bce4e11a0f51eb2f4d5fa1de">HandleToInt</a> (HANDLE handle)</td></tr>
<tr class="memdesc:ae643b5c6bce4e11a0f51eb2f4d5fa1de"><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts a <code>HANDLE</code> to an <code>int</code>. <a href="namespacecrashpad.html#ae643b5c6bce4e11a0f51eb2f4d5fa1de">More...</a><br /></td></tr>
<tr class="separator:ae643b5c6bce4e11a0f51eb2f4d5fa1de"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a83df06f1e4dc470676c1f86e93b6bc63"><td class="memItemLeft" align="right" valign="top">HANDLE&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#a83df06f1e4dc470676c1f86e93b6bc63">IntToHandle</a> (int handle_int)</td></tr>
<tr class="memdesc:a83df06f1e4dc470676c1f86e93b6bc63"><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts an <code>int</code> to an <code>HANDLE</code>. <a href="namespacecrashpad.html#a83df06f1e4dc470676c1f86e93b6bc63">More...</a><br /></td></tr>
<tr class="separator:a83df06f1e4dc470676c1f86e93b6bc63"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0358455342226c7906f6d8f3016a6374"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#a0358455342226c7906f6d8f3016a6374">IsThreadInLoaderLock</a> ()</td></tr>
<tr class="separator:a0358455342226c7906f6d8f3016a6374"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af5f4414be804bdcd71f57053d7147eff"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#af5f4414be804bdcd71f57053d7147eff">GetModuleVersionAndType</a> (const base::FilePath &amp;path, <a class="el" href="structVS__FIXEDFILEINFO.html">VS_FIXEDFILEINFO</a> *vs_fixedfileinfo)</td></tr>
<tr class="memdesc:af5f4414be804bdcd71f57053d7147eff"><td class="mdescLeft">&#160;</td><td class="mdescRight">Retrieve the type and version information from a given module (exe, dll, etc.) <a href="namespacecrashpad.html#af5f4414be804bdcd71f57053d7147eff">More...</a><br /></td></tr>
<tr class="separator:af5f4414be804bdcd71f57053d7147eff"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af98625fc4ae740c7acf83914cb9d2eea"><td class="memItemLeft" align="right" valign="top"><a id="af98625fc4ae740c7acf83914cb9d2eea"></a>
NTSTATUS&#160;</td><td class="memItemRight" valign="bottom"><b>NtClose</b> (HANDLE handle)</td></tr>
<tr class="separator:af98625fc4ae740c7acf83914cb9d2eea"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4fd167fde965614b528333f1d6af3a17"><td class="memItemLeft" align="right" valign="top"><a id="a4fd167fde965614b528333f1d6af3a17"></a>
NTSTATUS&#160;</td><td class="memItemRight" valign="bottom"><b>NtCreateThreadEx</b> (PHANDLE thread_handle, ACCESS_MASK desired_access, POBJECT_ATTRIBUTES object_attributes, HANDLE process_handle, PVOID start_routine, PVOID argument, ULONG create_flags, SIZE_T zero_bits, SIZE_T stack_size, SIZE_T maximum_stack_size, PVOID attribute_list)</td></tr>
<tr class="separator:a4fd167fde965614b528333f1d6af3a17"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1362e2105b0e5a1a96908dff0bf17f1b"><td class="memItemLeft" align="right" valign="top"><a id="a1362e2105b0e5a1a96908dff0bf17f1b"></a>
NTSTATUS&#160;</td><td class="memItemRight" valign="bottom"><b>NtQuerySystemInformation</b> (SYSTEM_INFORMATION_CLASS system_information_class, PVOID system_information, ULONG system_information_length, PULONG return_length)</td></tr>
<tr class="separator:a1362e2105b0e5a1a96908dff0bf17f1b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaadf7c489cec5aaec6941ed84349a687"><td class="memItemLeft" align="right" valign="top"><a id="aaadf7c489cec5aaec6941ed84349a687"></a>
NTSTATUS&#160;</td><td class="memItemRight" valign="bottom"><b>NtQueryInformationThread</b> (HANDLE thread_handle, THREADINFOCLASS thread_information_class, PVOID thread_information, ULONG thread_information_length, PULONG return_length)</td></tr>
<tr class="separator:aaadf7c489cec5aaec6941ed84349a687"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9bf0b422cad7e39f59f33ba59e1c4f63"><td class="memTemplParams" colspan="2"><a id="a9bf0b422cad7e39f59f33ba59e1c4f63"></a>
template&lt;class Traits &gt; </td></tr>
<tr class="memitem:a9bf0b422cad7e39f59f33ba59e1c4f63"><td class="memTemplItemLeft" align="right" valign="top">NTSTATUS&#160;</td><td class="memTemplItemRight" valign="bottom"><b>NtOpenThread</b> (PHANDLE thread_handle, ACCESS_MASK desired_access, POBJECT_ATTRIBUTES object_attributes, const <a class="el" href="structcrashpad_1_1process__types_1_1CLIENT__ID.html">process_types::CLIENT_ID</a>&lt; Traits &gt; *client_id)</td></tr>
<tr class="separator:a9bf0b422cad7e39f59f33ba59e1c4f63"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a62ddfe7ead9fb78e8dc69e3aef201591"><td class="memItemLeft" align="right" valign="top"><a id="a62ddfe7ead9fb78e8dc69e3aef201591"></a>
NTSTATUS&#160;</td><td class="memItemRight" valign="bottom"><b>NtQueryObject</b> (HANDLE handle, OBJECT_INFORMATION_CLASS object_information_class, void *object_information, ULONG object_information_length, ULONG *return_length)</td></tr>
<tr class="separator:a62ddfe7ead9fb78e8dc69e3aef201591"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0a7f5dacb7838eff13fc227543946514"><td class="memItemLeft" align="right" valign="top"><a id="a0a7f5dacb7838eff13fc227543946514"></a>
NTSTATUS&#160;</td><td class="memItemRight" valign="bottom"><b>NtSuspendProcess</b> (HANDLE handle)</td></tr>
<tr class="separator:a0a7f5dacb7838eff13fc227543946514"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4b4c03e99b85dc3f8bc3c9a0d13cea67"><td class="memItemLeft" align="right" valign="top"><a id="a4b4c03e99b85dc3f8bc3c9a0d13cea67"></a>
NTSTATUS&#160;</td><td class="memItemRight" valign="bottom"><b>NtResumeProcess</b> (HANDLE handle)</td></tr>
<tr class="separator:a4b4c03e99b85dc3f8bc3c9a0d13cea67"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adc9a999e6e353ff4fc56466621a8ff0e"><td class="memItemLeft" align="right" valign="top"><a id="adc9a999e6e353ff4fc56466621a8ff0e"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>RtlGetUnloadEventTraceEx</b> (ULONG **element_size, ULONG **element_count, void **event_trace)</td></tr>
<tr class="separator:adc9a999e6e353ff4fc56466621a8ff0e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abcbe51e96d3012cb4751d48d0c920d6c"><td class="memItemLeft" align="right" valign="top"><a id="abcbe51e96d3012cb4751d48d0c920d6c"></a>
template NTSTATUS&#160;</td><td class="memItemRight" valign="bottom"><b>NtOpenThread&lt; process_types::internal::Traits32 &gt;</b> (PHANDLE thread_handle, ACCESS_MASK desired_access, POBJECT_ATTRIBUTES object_attributes, const <a class="el" href="structcrashpad_1_1process__types_1_1CLIENT__ID.html">process_types::CLIENT_ID</a>&lt; <a class="el" href="structcrashpad_1_1process__types_1_1internal_1_1Traits32.html">process_types::internal::Traits32</a> &gt; *client_id)</td></tr>
<tr class="separator:abcbe51e96d3012cb4751d48d0c920d6c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac78cb91133d0fd98a7895856e36eaf74"><td class="memItemLeft" align="right" valign="top"><a id="ac78cb91133d0fd98a7895856e36eaf74"></a>
template NTSTATUS&#160;</td><td class="memItemRight" valign="bottom"><b>NtOpenThread&lt; process_types::internal::Traits64 &gt;</b> (PHANDLE thread_handle, ACCESS_MASK desired_access, POBJECT_ATTRIBUTES object_attributes, const <a class="el" href="structcrashpad_1_1process__types_1_1CLIENT__ID.html">process_types::CLIENT_ID</a>&lt; <a class="el" href="structcrashpad_1_1process__types_1_1internal_1_1Traits64.html">process_types::internal::Traits64</a> &gt; *client_id)</td></tr>
<tr class="separator:ac78cb91133d0fd98a7895856e36eaf74"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a04af5fe26b32e7a7bdd363017251fe00"><td class="memTemplParams" colspan="2"><a id="a04af5fe26b32e7a7bdd363017251fe00"></a>
template&lt;class Traits &gt; </td></tr>
<tr class="memitem:a04af5fe26b32e7a7bdd363017251fe00"><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><b>GetProcessBasicInformation</b> (HANDLE process, bool is_wow64, <a class="el" href="classcrashpad_1_1ProcessInfo.html">ProcessInfo</a> *process_info, <a class="el" href="namespacecrashpad.html#a368af6d88f68998b5c5eb80b8f6ebb76">WinVMAddress</a> *peb_address, <a class="el" href="namespacecrashpad.html#a1bac9f2a189b24737e743d6690362239">WinVMSize</a> *peb_size)</td></tr>
<tr class="separator:a04af5fe26b32e7a7bdd363017251fe00"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab0e1c8286ac56df129481b4d26b1aa9d"><td class="memTemplParams" colspan="2"><a id="ab0e1c8286ac56df129481b4d26b1aa9d"></a>
template&lt;class Traits &gt; </td></tr>
<tr class="memitem:ab0e1c8286ac56df129481b4d26b1aa9d"><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><b>ReadProcessData</b> (HANDLE process, <a class="el" href="namespacecrashpad.html#a368af6d88f68998b5c5eb80b8f6ebb76">WinVMAddress</a> peb_address_vmaddr, <a class="el" href="classcrashpad_1_1ProcessInfo.html">ProcessInfo</a> *process_info)</td></tr>
<tr class="separator:ab0e1c8286ac56df129481b4d26b1aa9d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a44ff5b9a1ac8271ebf0977880ec95ac3"><td class="memItemLeft" align="right" valign="top"><a id="a44ff5b9a1ac8271ebf0977880ec95ac3"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>ReadMemoryInfo</b> (HANDLE process, bool is_64_bit, <a class="el" href="classcrashpad_1_1ProcessInfo.html">ProcessInfo</a> *process_info)</td></tr>
<tr class="separator:a44ff5b9a1ac8271ebf0977880ec95ac3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a794c1a44de599deb3e261eab0bd6c03b"><td class="memItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="classcrashpad_1_1CheckedRange.html">CheckedRange</a>&lt; <a class="el" href="namespacecrashpad.html#a368af6d88f68998b5c5eb80b8f6ebb76">WinVMAddress</a>, <a class="el" href="namespacecrashpad.html#a1bac9f2a189b24737e743d6690362239">WinVMSize</a> &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#a794c1a44de599deb3e261eab0bd6c03b">GetReadableRangesOfMemoryMap</a> (const <a class="el" href="classcrashpad_1_1CheckedRange.html">CheckedRange</a>&lt; <a class="el" href="namespacecrashpad.html#a368af6d88f68998b5c5eb80b8f6ebb76">WinVMAddress</a>, <a class="el" href="namespacecrashpad.html#a1bac9f2a189b24737e743d6690362239">WinVMSize</a> &gt; &amp;range, const <a class="el" href="classcrashpad_1_1ProcessInfo.html#a9b1bd70d4a58ec0afe0ce742f0e3fea8">ProcessInfo::MemoryBasicInformation64Vector</a> &amp;memory_info)</td></tr>
<tr class="memdesc:a794c1a44de599deb3e261eab0bd6c03b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Given a memory map of a process, and a range to be read from the target process, returns a vector of ranges, representing the readable portions of the original range. <a href="namespacecrashpad.html#a794c1a44de599deb3e261eab0bd6c03b">More...</a><br /></td></tr>
<tr class="separator:a794c1a44de599deb3e261eab0bd6c03b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a638d7916642f81df8063d300f08ff2ca"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#a638d7916642f81df8063d300f08ff2ca">SendToCrashHandlerServer</a> (const base::string16 &amp;pipe_name, const <a class="el" href="structcrashpad_1_1ClientToServerMessage.html">ClientToServerMessage</a> &amp;message, <a class="el" href="unioncrashpad_1_1ServerToClientMessage.html">ServerToClientMessage</a> *response)</td></tr>
<tr class="memdesc:a638d7916642f81df8063d300f08ff2ca"><td class="mdescLeft">&#160;</td><td class="mdescRight">Connect over the given <em>pipe_name</em>, passing <em>message</em> to the server, storing the server's reply into <em>response</em>. <a href="namespacecrashpad.html#a638d7916642f81df8063d300f08ff2ca">More...</a><br /></td></tr>
<tr class="separator:a638d7916642f81df8063d300f08ff2ca"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1bb7596acd0c7d75d0608ffafc6028e8"><td class="memItemLeft" align="right" valign="top">HANDLE&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#a1bb7596acd0c7d75d0608ffafc6028e8">CreateNamedPipeInstance</a> (const std::wstring &amp;pipe_name, bool first_instance)</td></tr>
<tr class="memdesc:a1bb7596acd0c7d75d0608ffafc6028e8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Wraps CreateNamedPipe() to create a single named pipe instance. <a href="namespacecrashpad.html#a1bb7596acd0c7d75d0608ffafc6028e8">More...</a><br /></td></tr>
<tr class="separator:a1bb7596acd0c7d75d0608ffafc6028e8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8dec2ab03620dcacc0b0d60ae0845f3c"><td class="memItemLeft" align="right" valign="top">const void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#a8dec2ab03620dcacc0b0d60ae0845f3c">GetFallbackSecurityDescriptorForNamedPipeInstance</a> (size_t *size)</td></tr>
<tr class="memdesc:a8dec2ab03620dcacc0b0d60ae0845f3c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the <code>SECURITY_DESCRIPTOR</code> blob that will be used for creating the connection pipe in <a class="el" href="namespacecrashpad.html#a1bb7596acd0c7d75d0608ffafc6028e8" title="Wraps CreateNamedPipe() to create a single named pipe instance.">CreateNamedPipeInstance()</a> if the full descriptor can't be created. <a href="namespacecrashpad.html#a8dec2ab03620dcacc0b0d60ae0845f3c">More...</a><br /></td></tr>
<tr class="separator:a8dec2ab03620dcacc0b0d60ae0845f3c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af22242667ee950fe12a99b298dda5e08"><td class="memItemLeft" align="right" valign="top">const void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#af22242667ee950fe12a99b298dda5e08">GetSecurityDescriptorForNamedPipeInstance</a> (size_t *size)</td></tr>
<tr class="memdesc:af22242667ee950fe12a99b298dda5e08"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the <code>SECURITY_DESCRIPTOR</code> blob that will be used for creating the connection pipe in <a class="el" href="namespacecrashpad.html#a1bb7596acd0c7d75d0608ffafc6028e8" title="Wraps CreateNamedPipe() to create a single named pipe instance.">CreateNamedPipeInstance()</a>. <a href="namespacecrashpad.html#af22242667ee950fe12a99b298dda5e08">More...</a><br /></td></tr>
<tr class="separator:af22242667ee950fe12a99b298dda5e08"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad8efd0f50febdf3c8461fb93de8191f7"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#ad8efd0f50febdf3c8461fb93de8191f7">SafeTerminateProcess</a> (HANDLE process, UINT exit_code)</td></tr>
<tr class="memdesc:ad8efd0f50febdf3c8461fb93de8191f7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calls <code>TerminateProcess()</code>. <a href="namespacecrashpad.html#ad8efd0f50febdf3c8461fb93de8191f7">More...</a><br /></td></tr>
<tr class="separator:ad8efd0f50febdf3c8461fb93de8191f7"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
Variables</h2></td></tr>
<tr class="memitem:a77b69be523b4c70469e1d48e6c0bd3bc"><td class="memItemLeft" align="right" valign="top"><a id="a77b69be523b4c70469e1d48e6c0bd3bc"></a>
<a class="el" href="structcrashpad_1_1CrashpadInfo.html">CrashpadInfo</a>&#160;</td><td class="memItemRight" valign="bottom"><b>g_crashpad_info</b></td></tr>
<tr class="separator:a77b69be523b4c70469e1d48e6c0bd3bc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab08c753dbd9cf58c74e8d4d2380f44f1"><td class="memItemLeft" align="right" valign="top"><a id="ab08c753dbd9cf58c74e8d4d2380f44f1"></a>
int *&#160;</td><td class="memItemRight" valign="bottom"><b>CRASHPAD_NOTE_REFERENCE</b></td></tr>
<tr class="separator:ab08c753dbd9cf58c74e8d4d2380f44f1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab3a1ba1ae6a675fbe7cb244f95260530"><td class="memItemLeft" align="right" valign="top"><a id="ab3a1ba1ae6a675fbe7cb244f95260530"></a>
uint32_t *&#160;</td><td class="memItemRight" valign="bottom"><b>g_extra_memory_pointer</b></td></tr>
<tr class="separator:ab3a1ba1ae6a675fbe7cb244f95260530"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a314c4255fd5f08cb08696f33807cca8a"><td class="memItemLeft" align="right" valign="top"><a id="a314c4255fd5f08cb08696f33807cca8a"></a>
uint32_t *&#160;</td><td class="memItemRight" valign="bottom"><b>g_extra_memory_not_saved</b></td></tr>
<tr class="separator:a314c4255fd5f08cb08696f33807cca8a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a38551501b8f5006f1f4ac602b87e2724"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structcrashpad_1_1TestCrashpadInfo.html">TestCrashpadInfo</a>&#160;</td><td class="memItemRight" valign="bottom"><b>g_test_crashpad_info</b></td></tr>
<tr class="separator:a38551501b8f5006f1f4ac602b87e2724"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4dfaf3e08a4fd8619dfd48e9156d22b8"><td class="memItemLeft" align="right" valign="top"><a id="a4dfaf3e08a4fd8619dfd48e9156d22b8"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>GatherIndirectlyReferencedMemory</b></td></tr>
<tr class="separator:a4dfaf3e08a4fd8619dfd48e9156d22b8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a699e7614ee001ea71ae4416809ce9c80"><td class="memItemLeft" align="right" valign="top"><a id="a699e7614ee001ea71ae4416809ce9c80"></a>
gather_indirectly_referenced_memory&#160;</td><td class="memItemRight" valign="bottom"><b>UserDataMinidumpStreamHead</b></td></tr>
<tr class="separator:a699e7614ee001ea71ae4416809ce9c80"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a83421817896ef24623f0f1cf10268843"><td class="memItemLeft" align="right" valign="top">constexpr size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#a83421817896ef24623f0f1cf10268843">kMaxNumberOfAnnotations</a> = 200</td></tr>
<tr class="memdesc:a83421817896ef24623f0f1cf10268843"><td class="mdescLeft">&#160;</td><td class="mdescRight">The maximum number of crashpad::Annotations that will be read from a client process. <a href="namespacecrashpad.html#a83421817896ef24623f0f1cf10268843">More...</a><br /></td></tr>
<tr class="separator:a83421817896ef24623f0f1cf10268843"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:add54baa0f53825b93f3aab2fcafce367"><td class="memItemLeft" align="right" valign="top"><a id="add54baa0f53825b93f3aab2fcafce367"></a>
const <a class="el" href="namespacecrashpad.html#a07f8e33c4fdeba3783277f9f2563e48a">FileHandle</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#add54baa0f53825b93f3aab2fcafce367">kInvalidFileHandle</a> = -1</td></tr>
<tr class="memdesc:add54baa0f53825b93f3aab2fcafce367"><td class="mdescLeft">&#160;</td><td class="mdescRight">A value that can never be a valid FileHandle. <br /></td></tr>
<tr class="separator:add54baa0f53825b93f3aab2fcafce367"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a253712a6760b4b8a54dbcc8943692731"><td class="memItemLeft" align="right" valign="top">constexpr mach_port_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#a253712a6760b4b8a54dbcc8943692731">kMachPortNull</a> = MACH_PORT_NULL</td></tr>
<tr class="memdesc:a253712a6760b4b8a54dbcc8943692731"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code>MACH_PORT_NULL</code> with the correct type for a Mach port, <code>mach_port_t</code>. <a href="namespacecrashpad.html#a253712a6760b4b8a54dbcc8943692731">More...</a><br /></td></tr>
<tr class="separator:a253712a6760b4b8a54dbcc8943692731"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0999f3c072971348f71f196848fcde12"><td class="memItemLeft" align="right" valign="top">constexpr exception_behavior_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#a0999f3c072971348f71f196848fcde12">kMachExceptionCodes</a> = MACH_EXCEPTION_CODES</td></tr>
<tr class="memdesc:a0999f3c072971348f71f196848fcde12"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code>MACH_EXCEPTION_CODES</code> with the correct type for a Mach exception behavior, <code>exception_behavior_t</code>. <a href="namespacecrashpad.html#a0999f3c072971348f71f196848fcde12">More...</a><br /></td></tr>
<tr class="separator:a0999f3c072971348f71f196848fcde12"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9e0a6740778f04fe2d190dbcd080d55b"><td class="memItemLeft" align="right" valign="top"><a id="a9e0a6740778f04fe2d190dbcd080d55b"></a>
constexpr exception_type_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#a9e0a6740778f04fe2d190dbcd080d55b">kMachExceptionSimulated</a> = 'CPsx'</td></tr>
<tr class="memdesc:a9e0a6740778f04fe2d190dbcd080d55b"><td class="mdescLeft">&#160;</td><td class="mdescRight">An exception type to use for simulated exceptions. <br /></td></tr>
<tr class="separator:a9e0a6740778f04fe2d190dbcd080d55b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2c87c3ca622c253c84e9b557a0abe034"><td class="memItemLeft" align="right" valign="top">constexpr mach_msg_option_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#a2c87c3ca622c253c84e9b557a0abe034">kMachMessageReceiveAuditTrailer</a></td></tr>
<tr class="memdesc:a2c87c3ca622c253c84e9b557a0abe034"><td class="mdescLeft">&#160;</td><td class="mdescRight">A Mach message option specifying that an audit trailer should be delivered during a receive operation. <a href="namespacecrashpad.html#a2c87c3ca622c253c84e9b557a0abe034">More...</a><br /></td></tr>
<tr class="separator:a2c87c3ca622c253c84e9b557a0abe034"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a24a2e7edbbf8d61af6b3cea8a4a552ba"><td class="memItemLeft" align="right" valign="top"><a id="a24a2e7edbbf8d61af6b3cea8a4a552ba"></a>
constexpr uint64_t&#160;</td><td class="memItemRight" valign="bottom"><b>kNanosecondsPerSecond</b> = static_cast&lt;uint64_t&gt;(1E9)</td></tr>
<tr class="separator:a24a2e7edbbf8d61af6b3cea8a4a552ba"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6c879b0fe1012a256a0cc00d953f8aac"><td class="memItemLeft" align="right" valign="top"><a id="a6c879b0fe1012a256a0cc00d953f8aac"></a>
constexpr char&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#a6c879b0fe1012a256a0cc00d953f8aac">kContentType</a> [] = &quot;Content-Type&quot;</td></tr>
<tr class="memdesc:a6c879b0fe1012a256a0cc00d953f8aac"><td class="mdescLeft">&#160;</td><td class="mdescRight">The header name <code>"Content-Type"</code>. <br /></td></tr>
<tr class="separator:a6c879b0fe1012a256a0cc00d953f8aac"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4c5e0afd19a628a323c9a5529c66e623"><td class="memItemLeft" align="right" valign="top"><a id="a4c5e0afd19a628a323c9a5529c66e623"></a>
constexpr char&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#a4c5e0afd19a628a323c9a5529c66e623">kContentLength</a> [] = &quot;Content-Length&quot;</td></tr>
<tr class="memdesc:a4c5e0afd19a628a323c9a5529c66e623"><td class="mdescLeft">&#160;</td><td class="mdescRight">The header name <code>"Content-Length"</code>. <br /></td></tr>
<tr class="separator:a4c5e0afd19a628a323c9a5529c66e623"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5f39d4abd7b533a4a89585d65cc22fb8"><td class="memItemLeft" align="right" valign="top"><a id="a5f39d4abd7b533a4a89585d65cc22fb8"></a>
constexpr char&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacecrashpad.html#a5f39d4abd7b533a4a89585d65cc22fb8">kContentEncoding</a> [] = &quot;Content-Encoding&quot;</td></tr>
<tr class="memdesc:a5f39d4abd7b533a4a89585d65cc22fb8"><td class="mdescLeft">&#160;</td><td class="mdescRight">The header name <code>"Content-Encoding"</code>. <br /></td></tr>
<tr class="separator:a5f39d4abd7b533a4a89585d65cc22fb8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acb0afa0e9f45cf18efd764d2dc034cb3"><td class="memItemLeft" align="right" valign="top"><a id="acb0afa0e9f45cf18efd764d2dc034cb3"></a>
constexpr <a class="el" href="namespacecrashpad.html#a0f06cbe8cfef9e24ceed3e34de6563c2">ProcessID</a>&#160;</td><td class="memItemRight" valign="bottom"><b>kInvalidProcessID</b> = -1</td></tr>
<tr class="separator:acb0afa0e9f45cf18efd764d2dc034cb3"><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>The main namespace. </p>
</div><h2 class="groupheader">Typedef Documentation</h2>
<a id="a0103ebbd1b4f59431dd7292bd544de39"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0103ebbd1b4f59431dd7292bd544de39">&#9670;&nbsp;</a></span>AlignedVector</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T , size_t Alignment = alignof(T)&gt; </div>
<table class="memname">
<tr>
<td class="memname">using <a class="el" href="namespacecrashpad.html#a0103ebbd1b4f59431dd7292bd544de39">crashpad::AlignedVector</a> = typedef std::vector&lt;T, <a class="el" href="structcrashpad_1_1AlignedAllocator.html">AlignedAllocator</a>&lt;T, Alignment&gt; &gt;</td>
</tr>
</table>
</div><div class="memdoc">
<p>A <code>std::vector</code> using <a class="el" href="structcrashpad_1_1AlignedAllocator.html" title="A standard allocator that aligns its allocations as requested, suitable for use as an allocator in st...">AlignedAllocator</a>. </p>
<p>This is similar to <code>std::vector&lt;T&gt;</code>, with the addition of an alignment guarantee. <em>Alignment</em> must be a power of 2. If <em>Alignment</em> is not specified, the default alignment for type <em>T</em> is used. </p>
</div>
</div>
<a id="ab3efce65e2b78974531f2cb663f352d9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab3efce65e2b78974531f2cb663f352d9">&#9670;&nbsp;</a></span>CheckedLinuxAddressRange</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">using <a class="el" href="namespacecrashpad.html#ab3efce65e2b78974531f2cb663f352d9">crashpad::CheckedLinuxAddressRange</a> = typedef <a class="el" href="classcrashpad_1_1internal_1_1CheckedAddressRangeGeneric.html">internal::CheckedAddressRangeGeneric</a>&lt;<a class="el" href="namespacecrashpad.html#acb197256391fbfca91f9a7e5c911db45">LinuxVMAddress</a>, <a class="el" href="namespacecrashpad.html#aa2b5b2818842bda12ff9c4d555c2c8c8">LinuxVMSize</a>&gt;</td>
</tr>
</table>
</div><div class="memdoc">
<p>Ensures that a range, composed of a base and a size, does not overflow the pointer type of the process it describes a range in. </p>
<p>This class checks bases of type <a class="el" href="namespacecrashpad.html#acb197256391fbfca91f9a7e5c911db45" title="Type used to represent an address in a process, potentially across bitness.">LinuxVMAddress</a> and sizes of type <a class="el" href="namespacecrashpad.html#aa2b5b2818842bda12ff9c4d555c2c8c8" title="Type used to represent the size of a memory range (with a LinuxVMAddress), potentially across bitness...">LinuxVMSize</a> against a process whose pointer type is either 32 or 64 bits wide.</p>
<p>Aside from varying the overall range on the basis of a process’ pointer type width, this class functions very similarly to <a class="el" href="classcrashpad_1_1CheckedRange.html" title="Ensures that a range, composed of a base and size, does not overflow its data type.">CheckedRange</a>. </p>
</div>
</div>
<a id="a8d7f0170c573e59ca6b02e29735f4fad"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8d7f0170c573e59ca6b02e29735f4fad">&#9670;&nbsp;</a></span>CheckedMachAddressRange</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">using <a class="el" href="namespacecrashpad.html#a8d7f0170c573e59ca6b02e29735f4fad">crashpad::CheckedMachAddressRange</a> = typedef <a class="el" href="classcrashpad_1_1internal_1_1CheckedAddressRangeGeneric.html">internal::CheckedAddressRangeGeneric</a>&lt;mach_vm_address_t, mach_vm_size_t&gt;</td>
</tr>
</table>
</div><div class="memdoc">
<p>Ensures that a range, composed of a base and a size, does not overflow the pointer type of the process it describes a range in. </p>
<p>This class checks bases of type <code>mach_vm_address_t</code> and sizes of type <code>mach_vm_address_t</code> against a process whose pointer type is either 32 or 64 bits wide.</p>
<p>Aside from varying the overall range on the basis of a process’ pointer type width, this class functions very similarly to <a class="el" href="classcrashpad_1_1CheckedRange.html" title="Ensures that a range, composed of a base and size, does not overflow its data type.">CheckedRange</a>. </p>
</div>
</div>
<a id="a754aa9162769947b5a5debad05d8d6ae"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a754aa9162769947b5a5debad05d8d6ae">&#9670;&nbsp;</a></span>CheckedVMAddressRange</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">using <a class="el" href="namespacecrashpad.html#a754aa9162769947b5a5debad05d8d6ae">crashpad::CheckedVMAddressRange</a> = typedef <a class="el" href="classcrashpad_1_1internal_1_1CheckedAddressRangeGeneric.html">internal::CheckedAddressRangeGeneric</a>&lt;<a class="el" href="namespacecrashpad.html#af2d003bfc8632755c60ab27bd6d1c8ae">VMAddress</a>, <a class="el" href="namespacecrashpad.html#a103690edebf604dcd23d5c03b78fe0be">VMSize</a>&gt;</td>
</tr>
</table>
</div><div class="memdoc">
<p>Ensures that a range, composed of a base and a size, does not overflow the pointer type of the process it describes a range in. </p>
<p>This class checks bases of type <a class="el" href="namespacecrashpad.html#af2d003bfc8632755c60ab27bd6d1c8ae" title="Type used to represent an address in a process, potentially across bitness.">VMAddress</a> and sizes of type <a class="el" href="namespacecrashpad.html#a103690edebf604dcd23d5c03b78fe0be" title="Type used to represent the size of a memory range (with a VMAddress), potentially across bitness.">VMSize</a> against a process whose pointer type is either 32 or 64 bits wide.</p>
<p>Aside from varying the overall range on the basis of a process’ pointer type width, this class functions very similarly to <a class="el" href="classcrashpad_1_1CheckedRange.html" title="Ensures that a range, composed of a base and size, does not overflow its data type.">CheckedRange</a>. </p>
</div>
</div>
<a id="ad171ce8db60c84b2d875f7acd3b90f1e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad171ce8db60c84b2d875f7acd3b90f1e">&#9670;&nbsp;</a></span>CheckedWinAddressRange</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">using <a class="el" href="namespacecrashpad.html#ad171ce8db60c84b2d875f7acd3b90f1e">crashpad::CheckedWinAddressRange</a> = typedef <a class="el" href="classcrashpad_1_1internal_1_1CheckedAddressRangeGeneric.html">internal::CheckedAddressRangeGeneric</a>&lt;<a class="el" href="namespacecrashpad.html#a368af6d88f68998b5c5eb80b8f6ebb76">WinVMAddress</a>, <a class="el" href="namespacecrashpad.html#a1bac9f2a189b24737e743d6690362239">WinVMSize</a>&gt;</td>
</tr>
</table>
</div><div class="memdoc">
<p>Ensures that a range, composed of a base and a size, does not overflow the pointer type of the process it describes a range in. </p>
<p>This class checks bases of type WinVMAddress and sizes of type WinVMSize against a process whose pointer type is either 32 or 64 bits wide.</p>
<p>Aside from varying the overall range on the basis of a process' pointer type width, this class functions very similarly to <a class="el" href="classcrashpad_1_1CheckedRange.html" title="Ensures that a range, composed of a base and size, does not overflow its data type.">CheckedRange</a>. </p>
</div>
</div>
<a id="a72fa9ea632f7f1ec93ec3c1b1d300db6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a72fa9ea632f7f1ec93ec3c1b1d300db6">&#9670;&nbsp;</a></span>ConstThreadState</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">using <a class="el" href="namespacecrashpad.html#a72fa9ea632f7f1ec93ec3c1b1d300db6">crashpad::ConstThreadState</a> = typedef const natural_t*</td>
</tr>
</table>
</div><div class="memdoc">
<p>A const version of <code>thread_state_t</code>. </p>
<p>This is useful as the <em>old_state</em> parameter to exception handler functions. Normally, these parameters are of type <code>thread_state_t</code>, but this allows modification of the state, which is conceptually <code>const</code>. </p>
</div>
</div>
<a id="a34f36473e385b19eb229798ab2f7210c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a34f36473e385b19eb229798ab2f7210c">&#9670;&nbsp;</a></span>MachMessageDeadline</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">using <a class="el" href="namespacecrashpad.html#a34f36473e385b19eb229798ab2f7210c">crashpad::MachMessageDeadline</a> = typedef uint64_t</td>
</tr>
</table>
</div><div class="memdoc">
<p>The time before which a <a class="el" href="namespacecrashpad.html#a35293418a0b7637a00631807ac4b431e" title="Runs mach_msg() with a deadline, as opposed to a timeout.">MachMessageWithDeadline()</a> call should complete. </p>
<p>A value of this type may be one of the special constants <a class="el" href="namespacecrashpad.html#af3f950b6030a2822b1780155b38ae9b6a6461bf9de012b5f2305fb3da6d0f82d5" title="MachMessageWithDeadline() should not block at all in its operation.">kMachMessageDeadlineNonblocking</a> or <a class="el" href="namespacecrashpad.html#af3f950b6030a2822b1780155b38ae9b6a848a739b3c252f4565161a6bd3f070d6" title="MachMessageWithDeadline() should wait indefinitely for the requested operation to complete.">kMachMessageDeadlineWaitIndefinitely</a>. Any other values should be produced by calling <a class="el" href="namespacecrashpad.html#aa31f495c675536bcb30d1267c3a9b696" title="Computes the deadline for a specified timeout value.">MachMessageDeadlineFromTimeout()</a>.</p>
<p>Internally, these are currently specified on the same time base as <a class="el" href="namespacecrashpad.html#aa93af751a4a09c316fb3de1a90e03fe8" title="Returns the value of the system’s monotonic clock.">ClockMonotonicNanoseconds()</a>, although this is an implementation detail. </p>
</div>
</div>
<a id="ae426d8c91f5448aaf543f91478d831da"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae426d8c91f5448aaf543f91478d831da">&#9670;&nbsp;</a></span>MinidumpThreadIDMap</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">using <a class="el" href="namespacecrashpad.html#ae426d8c91f5448aaf543f91478d831da">crashpad::MinidumpThreadIDMap</a> = typedef std::map&lt;uint64_t, uint32_t&gt;</td>
</tr>
</table>
</div><div class="memdoc">
<p>A map that connects 64-bit snapshot thread IDs to 32-bit minidump thread IDs. </p>
<p>64-bit snapshot thread IDs are obtained from <a class="el" href="classcrashpad_1_1ThreadSnapshot.html#a3c953575fadb934cd5f163560df149da" title="Returns the thread’s identifier.">ThreadSnapshot::ThreadID()</a>. 32-bit minidump thread IDs are stored in <a class="el" href="structMINIDUMP__THREAD.html#a1d2508187af6c3ec09e5836badb56fd2" title="The thread’s ID. This may be referenced by MINIDUMP_EXCEPTION_STREAM::ThreadId.">MINIDUMP_THREAD::ThreadId</a>.</p>
<p>A ThreadIDMap ensures that there are no collisions among the set of 32-bit minidump thread IDs. </p>
</div>
</div>
<a id="ac63c0ded12544d344a9ad552958adf85"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac63c0ded12544d344a9ad552958adf85">&#9670;&nbsp;</a></span>ScopedDIR</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">using <a class="el" href="namespacecrashpad.html#ac63c0ded12544d344a9ad552958adf85">crashpad::ScopedDIR</a> = typedef base::ScopedGeneric&lt;DIR*, <a class="el" href="structcrashpad_1_1internal_1_1ScopedDIRCloseTraits.html">internal::ScopedDIRCloseTraits</a>&gt;</td>
</tr>
</table>
</div><div class="memdoc">
<p>Maintains a directory opened by <code>opendir</code>. </p>
<p>On destruction, the directory will be closed by calling <code>closedir</code>. </p>
</div>
</div>
<a id="ac21afdb4f6e3c57ccf3bd34ea8410978"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac21afdb4f6e3c57ccf3bd34ea8410978">&#9670;&nbsp;</a></span>SimpleStringDictionary</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">using <a class="el" href="namespacecrashpad.html#ac21afdb4f6e3c57ccf3bd34ea8410978">crashpad::SimpleStringDictionary</a> = typedef <a class="el" href="classcrashpad_1_1TSimpleStringDictionary.html">TSimpleStringDictionary</a>&lt;256, 256, 64&gt;</td>
</tr>
</table>
</div><div class="memdoc">
<p>A <a class="el" href="classcrashpad_1_1TSimpleStringDictionary.html" title="A map/dictionary collection implementation using a fixed amount of storage, so that it does not perfo...">TSimpleStringDictionary</a> with default template parameters. </p>
<p>For historical reasons this specialized version is available with the same size factors as a previous implementation. </p>
</div>
</div>
<h2 class="groupheader">Enumeration Type Documentation</h2>
<a id="ae8e27a86d946848ed2024ce3d864d6d7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae8e27a86d946848ed2024ce3d864d6d7">&#9670;&nbsp;</a></span>anonymous enum</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">anonymous enum</td>
</tr>
</table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="ae8e27a86d946848ed2024ce3d864d6d7ae4f1a3b637ac392d76826131e72ac832"></a>kXPProcessAllAccess&#160;</td><td class="fielddoc"><p>This is the XP-suitable value of <code>PROCESS_ALL_ACCESS</code>. </p>
<p>Requesting <code>PROCESS_ALL_ACCESS</code> with the value defined when building against a Vista+ SDK results in <code>ERROR_ACCESS_DENIED</code> when running on XP. See <a href="https://msdn.microsoft.com/library/ms684880.aspx">https://msdn.microsoft.com/library/ms684880.aspx</a>. </p>
</td></tr>
<tr><td class="fieldname"><a id="ae8e27a86d946848ed2024ce3d864d6d7af4736ae0e9abf32de684ad33895eec0e"></a>kXPThreadAllAccess&#160;</td><td class="fielddoc"><p>This is the XP-suitable value of <code>THREAD_ALL_ACCESS</code>. </p>
<p>Requesting <code>THREAD_ALL_ACCESS</code> with the value defined when building against a Vista+ SDK results in <code>ERROR_ACCESS_DENIED</code> when running on XP. See <a href="https://msdn.microsoft.com/library/ms686769.aspx">https://msdn.microsoft.com/library/ms686769.aspx</a>. </p>
</td></tr>
</table>
</div>
</div>
<a id="ac805f7bb551683e1da0b156c09259c92"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac805f7bb551683e1da0b156c09259c92">&#9670;&nbsp;</a></span>anonymous enum</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">anonymous enum : mach_msg_timeout_t</td>
</tr>
</table>
</div><div class="memdoc">
<p>Special constants used as <code>mach_msg_timeout_t</code> values. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="ac805f7bb551683e1da0b156c09259c92a15aaf8991271871ab08493449c00a048"></a>kMachMessageTimeoutNonblocking&#160;</td><td class="fielddoc"><p>When passed to <a class="el" href="namespacecrashpad.html#aa31f495c675536bcb30d1267c3a9b696" title="Computes the deadline for a specified timeout value.">MachMessageDeadlineFromTimeout()</a>, that function will return <a class="el" href="namespacecrashpad.html#af3f950b6030a2822b1780155b38ae9b6a6461bf9de012b5f2305fb3da6d0f82d5" title="MachMessageWithDeadline() should not block at all in its operation.">kMachMessageDeadlineNonblocking</a>. </p>
</td></tr>
<tr><td class="fieldname"><a id="ac805f7bb551683e1da0b156c09259c92aaf4f2c8a649ea6bcfe896e77c312315f"></a>kMachMessageTimeoutWaitIndefinitely&#160;</td><td class="fielddoc"><p>When passed to <a class="el" href="namespacecrashpad.html#aa31f495c675536bcb30d1267c3a9b696" title="Computes the deadline for a specified timeout value.">MachMessageDeadlineFromTimeout()</a>, that function will return <a class="el" href="namespacecrashpad.html#af3f950b6030a2822b1780155b38ae9b6a848a739b3c252f4565161a6bd3f070d6" title="MachMessageWithDeadline() should wait indefinitely for the requested operation to complete.">kMachMessageDeadlineWaitIndefinitely</a>. </p>
</td></tr>
</table>
</div>
</div>
<a id="af3f950b6030a2822b1780155b38ae9b6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af3f950b6030a2822b1780155b38ae9b6">&#9670;&nbsp;</a></span>anonymous enum</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">anonymous enum : <a class="el" href="namespacecrashpad.html#a34f36473e385b19eb229798ab2f7210c">MachMessageDeadline</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>Special constants used as <a class="el" href="namespacecrashpad.html#a34f36473e385b19eb229798ab2f7210c">MachMessageDeadline</a> values. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="af3f950b6030a2822b1780155b38ae9b6a6461bf9de012b5f2305fb3da6d0f82d5"></a>kMachMessageDeadlineNonblocking&#160;</td><td class="fielddoc"><p><a class="el" href="namespacecrashpad.html#a35293418a0b7637a00631807ac4b431e" title="Runs mach_msg() with a deadline, as opposed to a timeout.">MachMessageWithDeadline()</a> should not block at all in its operation. </p>
</td></tr>
<tr><td class="fieldname"><a id="af3f950b6030a2822b1780155b38ae9b6a848a739b3c252f4565161a6bd3f070d6"></a>kMachMessageDeadlineWaitIndefinitely&#160;</td><td class="fielddoc"><p><a class="el" href="namespacecrashpad.html#a35293418a0b7637a00631807ac4b431e" title="Runs mach_msg() with a deadline, as opposed to a timeout.">MachMessageWithDeadline()</a> should wait indefinitely for the requested operation to complete. </p>
</td></tr>
</table>
</div>
</div>
<a id="a270e290ba558e948eb6690bd217cbb71"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a270e290ba558e948eb6690bd217cbb71">&#9670;&nbsp;</a></span>CPUArchitecture</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="namespacecrashpad.html#a270e290ba558e948eb6690bd217cbb71">crashpad::CPUArchitecture</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>A system’s CPU architecture. </p>
<p>This can be used to represent the CPU architecture of an entire system as in SystemSnapshot::CPUArchitecture(). It can also be used to represent the architecture of a <a class="el" href="structcrashpad_1_1CPUContext.html" title="A context structure capable of carrying the context of any supported CPU architecture.">CPUContext</a> structure in its <a class="el" href="structcrashpad_1_1CPUContext.html#af71f7a2e8478339d53fcb9d52ded6ae5" title="The CPU architecture of a context structure. This field controls the expression of the union.">CPUContext::architecture</a> field without reference to external data. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="a270e290ba558e948eb6690bd217cbb71a4a3c395099ca8e31f9bd9511e058c73c"></a>kCPUArchitectureUnknown&#160;</td><td class="fielddoc"><p>The CPU architecture is unknown. </p>
</td></tr>
<tr><td class="fieldname"><a id="a270e290ba558e948eb6690bd217cbb71a35adbd1bc0b19ef37c520d078cf0df15"></a>kCPUArchitectureX86&#160;</td><td class="fielddoc"><p>32-bit x86. </p>
</td></tr>
<tr><td class="fieldname"><a id="a270e290ba558e948eb6690bd217cbb71addee685df867aea490719783e56baf0a"></a>kCPUArchitectureX86_64&#160;</td><td class="fielddoc"><p>x86_64. </p>
</td></tr>
<tr><td class="fieldname"><a id="a270e290ba558e948eb6690bd217cbb71a0f76d97bac2e52e39caf1cd6bbe4e7ec"></a>kCPUArchitectureARM&#160;</td><td class="fielddoc"><p>32-bit ARM. </p>
</td></tr>
<tr><td class="fieldname"><a id="a270e290ba558e948eb6690bd217cbb71a5fe27bac5abf4fb8220cd95b9319ec6e"></a>kCPUArchitectureARM64&#160;</td><td class="fielddoc"><p>64-bit ARM. </p>
</td></tr>
<tr><td class="fieldname"><a id="a270e290ba558e948eb6690bd217cbb71a22e519bc132f9b4060f1c3805d6e3f23"></a>kCPUArchitectureMIPSEL&#160;</td><td class="fielddoc"><p>32-bit MIPSEL. </p>
</td></tr>
<tr><td class="fieldname"><a id="a270e290ba558e948eb6690bd217cbb71a16162f32d9347391a58bed50a1d60c5b"></a>kCPUArchitectureMIPS64EL&#160;</td><td class="fielddoc"><p>64-bit MIPSEL. </p>
</td></tr>
</table>
</div>
</div>
<a id="a3753a95b02e5c96c6e20017e467cef07"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3753a95b02e5c96c6e20017e467cef07">&#9670;&nbsp;</a></span>FileLocking</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="namespacecrashpad.html#a3753a95b02e5c96c6e20017e467cef07">crashpad::FileLocking</a> : bool</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>Determines the locking mode that <a class="el" href="namespacecrashpad.html#acd02263566d8c43fc7886f88a13b364f" title="Locks the given file using flock() on POSIX or LockFileEx() on Windows.">LoggingLockFile()</a> uses. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="a3753a95b02e5c96c6e20017e467cef07a767e1337acb2aa20d7ce4e903a75ca16"></a>kShared&#160;</td><td class="fielddoc"><p>Equivalent to <code>flock()</code> with <code>LOCK_SH</code>. </p>
</td></tr>
<tr><td class="fieldname"><a id="a3753a95b02e5c96c6e20017e467cef07a9d38b79e17ebc3239ca19ba517174b5b"></a>kExclusive&#160;</td><td class="fielddoc"><p>Equivalent to <code>flock()</code> with <code>LOCK_EX</code>. </p>
</td></tr>
</table>
</div>
</div>
<a id="a034ccc90eb0d1f587ee89275d822175d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a034ccc90eb0d1f587ee89275d822175d">&#9670;&nbsp;</a></span>FilePermissions</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="namespacecrashpad.html#a034ccc90eb0d1f587ee89275d822175d">crashpad::FilePermissions</a> : bool</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>Determines the permissions bits for files created on POSIX systems. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="a034ccc90eb0d1f587ee89275d822175dab73168a18962d7b0ed6b67f2e0ade611"></a>kOwnerOnly&#160;</td><td class="fielddoc"><p>Equivalent to <code>0600</code>. </p>
</td></tr>
<tr><td class="fieldname"><a id="a034ccc90eb0d1f587ee89275d822175da5368ce91b6c60534fe1187a23e98924d"></a>kWorldReadable&#160;</td><td class="fielddoc"><p>Equivalent to <code>0644</code>. </p>
</td></tr>
</table>
</div>
</div>
<a id="afa69b0967d9a6df659ff5d2a02ff3e51"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afa69b0967d9a6df659ff5d2a02ff3e51">&#9670;&nbsp;</a></span>FileWriteMode</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="namespacecrashpad.html#afa69b0967d9a6df659ff5d2a02ff3e51">crashpad::FileWriteMode</a></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>Determines the mode that <a class="el" href="namespacecrashpad.html#a62fc6876cc0c660f0ea8bd1dd0a07e82" title="Wraps OpenFileForWrite(), logging an error if the operation fails.">LoggingOpenFileForWrite()</a> uses. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="afa69b0967d9a6df659ff5d2a02ff3e51aafde8ca07d267d05bcec5df8b0fc6c22"></a>kReuseOrFail&#160;</td><td class="fielddoc"><p>Opens the file if it exists, or fails if it does not. </p>
</td></tr>
<tr><td class="fieldname"><a id="afa69b0967d9a6df659ff5d2a02ff3e51ae32f90c7a8d4224749e4e99f11e5eee7"></a>kReuseOrCreate&#160;</td><td class="fielddoc"><p>Opens the file if it exists, or creates a new file. </p>
</td></tr>
<tr><td class="fieldname"><a id="afa69b0967d9a6df659ff5d2a02ff3e51a751805077642855501f572c876e1d907"></a>kTruncateOrCreate&#160;</td><td class="fielddoc"><p>Creates a new file. If the file already exists, it will be overwritten. </p>
</td></tr>
<tr><td class="fieldname"><a id="afa69b0967d9a6df659ff5d2a02ff3e51a4ece9fd054e01c35ba925186adcf0c71"></a>kCreateOrFail&#160;</td><td class="fielddoc"><p>Creates a new file. If the file already exists, the open will fail. </p>
</td></tr>
</table>
</div>
</div>
<a id="aa197c419950bae99f1ba663f10b1891c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa197c419950bae99f1ba663f10b1891c">&#9670;&nbsp;</a></span>MinidumpContextAMD64Flags</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="namespacecrashpad.html#aa197c419950bae99f1ba663f10b1891c">crashpad::MinidumpContextAMD64Flags</a> : uint32_t</td>
</tr>
</table>
</div><div class="memdoc">
<p>x86_64-specific flags for <a class="el" href="structcrashpad_1_1MinidumpContextAMD64.html#a086c5c2655800e91e080241317aa3ace" title="A bitfield composed of values of MinidumpContextFlags and MinidumpContextAMD64Flags.">MinidumpContextAMD64::context_flags</a>. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="aa197c419950bae99f1ba663f10b1891caaa3c47e2ec7565ce81b7cda3a4c101c6"></a>kMinidumpContextAMD64&#160;</td><td class="fielddoc"><p>Identifies the context structure as x86_64. This is the same as <code>CONTEXT_AMD64</code> on Windows for this architecture. </p>
</td></tr>
<tr><td class="fieldname"><a id="aa197c419950bae99f1ba663f10b1891ca7aaf3a9f32414c379444f75a341f61f6"></a>kMinidumpContextAMD64Control&#160;</td><td class="fielddoc"><p>Indicates the validity of control registers (<code>CONTEXT_CONTROL</code>). </p>
<p>The <code>cs</code>, <code>ss</code>, <code>eflags</code>, <code>rsp</code>, and <code>rip</code> fields are valid. </p>
</td></tr>
<tr><td class="fieldname"><a id="aa197c419950bae99f1ba663f10b1891ca3231a2e73f13021707e1dd5465124c94"></a>kMinidumpContextAMD64Integer&#160;</td><td class="fielddoc"><p>Indicates the validity of non-control integer registers (<code>CONTEXT_INTEGER</code>). </p>
<p>The <code>rax</code>, <code>rcx</code>, <code>rdx</code>, <code>rbx</code>, <code>rbp</code>, <code>rsi</code>, <code>rdi</code>, and <code>r8</code> through <code>r15</code> fields are valid. </p>
</td></tr>
<tr><td class="fieldname"><a id="aa197c419950bae99f1ba663f10b1891ca087fcb89147fcb03a42917257d7c95d8"></a>kMinidumpContextAMD64Segment&#160;</td><td class="fielddoc"><p>Indicates the validity of non-control segment registers (<code>CONTEXT_SEGMENTS</code>). </p>
<p>The <code>ds</code>, <code>es</code>, <code>fs</code>, and <code>gs</code> fields are valid. </p>
</td></tr>
<tr><td class="fieldname"><a id="aa197c419950bae99f1ba663f10b1891ca80855829a791a48417d0599bda56685c"></a>kMinidumpContextAMD64FloatingPoint&#160;</td><td class="fielddoc"><p>Indicates the validity of floating-point state (<code>CONTEXT_FLOATING_POINT</code>). </p>
<p>The <code>xmm0</code> through <code>xmm15</code> fields are valid. </p>
</td></tr>
<tr><td class="fieldname"><a id="aa197c419950bae99f1ba663f10b1891ca0a6187be426495350ac54f8eec044770"></a>kMinidumpContextAMD64Debug&#160;</td><td class="fielddoc"><p>Indicates the validity of debug registers (<code>CONTEXT_DEBUG_REGISTERS</code>). </p>
<p>The <code>dr0</code> through <code>dr3</code>, <code>dr6</code>, and <code>dr7</code> fields are valid. </p>
</td></tr>
<tr><td class="fieldname"><a id="aa197c419950bae99f1ba663f10b1891cae39eafc6efd87afc7c6977ae3cc0fc96"></a>kMinidumpContextAMD64Xstate&#160;</td><td class="fielddoc"><p>Indicates the validity of <code>xsave</code> data (<code>CONTEXT_XSTATE</code>). </p>
<p>The context contains <code>xsave</code> data. This is used with an extended context structure not currently defined here. </p>
</td></tr>
<tr><td class="fieldname"><a id="aa197c419950bae99f1ba663f10b1891ca7d67332dea79c652a93e592341ab5e51"></a>kMinidumpContextAMD64Full&#160;</td><td class="fielddoc"><p>Indicates the validity of control, integer, and floating-point registers (<code>CONTEXT_FULL</code>). </p>
</td></tr>
<tr><td class="fieldname"><a id="aa197c419950bae99f1ba663f10b1891cac84b1d90bf34dbb26631ca77d942abf8"></a>kMinidumpContextAMD64All&#160;</td><td class="fielddoc"><p>Indicates the validity of all registers except <code>xsave</code> data (<code>CONTEXT_ALL</code>). </p>
</td></tr>
</table>
</div>
</div>
<a id="a52002589247bce8e16fc48857f31ec8a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a52002589247bce8e16fc48857f31ec8a">&#9670;&nbsp;</a></span>MinidumpContextARM64Flags</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="namespacecrashpad.html#a52002589247bce8e16fc48857f31ec8a">crashpad::MinidumpContextARM64Flags</a> : uint32_t</td>
</tr>
</table>
</div><div class="memdoc">
<p>64-bit ARM-specifc flags for MinidumpContextARM64::context_flags. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="a52002589247bce8e16fc48857f31ec8aa860b1410179a698c64ea8adbcd2a8cb4"></a>kMinidumpContextARM64&#160;</td><td class="fielddoc"><p>Identifies the context structure as 64-bit ARM. </p>
</td></tr>
<tr><td class="fieldname"><a id="a52002589247bce8e16fc48857f31ec8aaaf724e06ee919fed0178cc155aa1406e"></a>kMinidumpContextARM64Control&#160;</td><td class="fielddoc"><p>Indicates the validity of control registers. </p>
<p>Registers <code>fp</code>, <code>lr</code>, <code>sp</code>, <code>pc</code>, and <code>cpsr</code>. </p>
</td></tr>
<tr><td class="fieldname"><a id="a52002589247bce8e16fc48857f31ec8aaf29250bf4d5e080a580aca580fcf1e14"></a>kMinidumpContextARM64Integer&#160;</td><td class="fielddoc"><p>Indicates the validty of integer registers. </p>
<p>Registers <code>x0</code>-<code>x28</code>. </p>
</td></tr>
<tr><td class="fieldname"><a id="a52002589247bce8e16fc48857f31ec8aa2a1def4d4157278945efa666dfb887eb"></a>kMinidumpContextARM64Fpsimd&#160;</td><td class="fielddoc"><p>Indicates the validity of fpsimd registers. </p>
<p>Registers <code>v0</code>-<code>v31</code>, <code>fpsr</code>, and <code>fpcr</code> are valid. </p>
</td></tr>
<tr><td class="fieldname"><a id="a52002589247bce8e16fc48857f31ec8aa4dbcf3fa604d026d050cf10386424125"></a>kMinidumpContextARM64Debug&#160;</td><td class="fielddoc"><p>Indicates the validity of debug registers. </p>
<p><code>bcr</code>, <code>bvr</code>, <code>wcr</code>, and <code>wvr</code> are valid. </p>
</td></tr>
<tr><td class="fieldname"><a id="a52002589247bce8e16fc48857f31ec8aa460e2780dd5879d428983c1c435b9225"></a>kMinidumpContextARM64Full&#160;</td><td class="fielddoc"><p>Indicates the validity of control, integer and floating point registers. </p>
</td></tr>
<tr><td class="fieldname"><a id="a52002589247bce8e16fc48857f31ec8aa1db064490788cb2288580d3ba1969ec0"></a>kMinidumpContextARM64All&#160;</td><td class="fielddoc"><p>Indicates the validity of all registers. </p>
</td></tr>
</table>
</div>
</div>
<a id="ab7077f40e8cf5fae1f668085248efe77"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab7077f40e8cf5fae1f668085248efe77">&#9670;&nbsp;</a></span>MinidumpContextARMFlags</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="namespacecrashpad.html#ab7077f40e8cf5fae1f668085248efe77">crashpad::MinidumpContextARMFlags</a> : uint32_t</td>
</tr>
</table>
</div><div class="memdoc">
<p>32-bit ARM-specifc flags for <a class="el" href="structcrashpad_1_1MinidumpContextARM.html#ab5462d7d1c2b1b484ae9fdaf286aeee8" title="A bitfield composed of values of MinidumpContextFlags and MinidumpContextARMFlags.">MinidumpContextARM::context_flags</a>. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="ab7077f40e8cf5fae1f668085248efe77a5facfc8bdb6f794df0c4794fb8b353c1"></a>kMinidumpContextARM&#160;</td><td class="fielddoc"><p>Identifies the context structure as 32-bit ARM. </p>
</td></tr>
<tr><td class="fieldname"><a id="ab7077f40e8cf5fae1f668085248efe77afab8bf9f637e396902fc7df7164ae807"></a>kMinidumpContextARMInteger&#160;</td><td class="fielddoc"><p>Indicates the validity of integer regsiters. </p>
<p>Regsiters <code>r0</code>-<code>r15</code> and <code>cpsr</code> are valid. </p>
</td></tr>
<tr><td class="fieldname"><a id="ab7077f40e8cf5fae1f668085248efe77ab43d522ed5648c9635959a69cc71ed8f"></a>kMinidumpContextARMVFP&#160;</td><td class="fielddoc"><p>Inidicates the validity of VFP regsiters. </p>
<p>Registers <code>d0</code>-<code>d31</code> and <code>fpscr</code> are valid. </p>
</td></tr>
<tr><td class="fieldname"><a id="ab7077f40e8cf5fae1f668085248efe77a202bd40d0dff96c51379932e4149a1af"></a>kMinidumpContextARMAll&#160;</td><td class="fielddoc"><p>Indicates the validity of all registers. </p>
</td></tr>
</table>
</div>
</div>
<a id="a835e6bd6cb3f97c99c572596878c1573"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a835e6bd6cb3f97c99c572596878c1573">&#9670;&nbsp;</a></span>MinidumpContextFlags</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="namespacecrashpad.html#a835e6bd6cb3f97c99c572596878c1573">crashpad::MinidumpContextFlags</a> : uint32_t</td>
</tr>
</table>
</div><div class="memdoc">
<p>Architecture-independent flags for <code>context_flags</code> fields in Minidump context structures. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="a835e6bd6cb3f97c99c572596878c1573ac76899aed0f9a5f331fcdc9343a1bc68"></a>kMinidumpContextExceptionActive&#160;</td><td class="fielddoc"><p>The thread was executing a trap handler in kernel mode (<code>CONTEXT_EXCEPTION_ACTIVE</code>). </p>
<p>If this bit is set, it indicates that the context is from a thread that was executing a trap handler in the kernel. This bit is only valid when <a class="el" href="namespacecrashpad.html#a835e6bd6cb3f97c99c572596878c1573ae8cd92df6bc89b12ba3a4f7fe8529f10" title="Kernel-mode state reporting is provided (CONTEXT_EXCEPTION_REPORTING).">kMinidumpContextExceptionReporting</a> is also set. This bit is only used on Windows. </p>
</td></tr>
<tr><td class="fieldname"><a id="a835e6bd6cb3f97c99c572596878c1573ac0a5b0f61a08eae36fc1ed26fa929ebb"></a>kMinidumpContextServiceActive&#160;</td><td class="fielddoc"><p>The thread was executing a system call in kernel mode (<code>CONTEXT_SERVICE_ACTIVE</code>). </p>
<p>If this bit is set, it indicates that the context is from a thread that was executing a system call in the kernel. This bit is only valid when <a class="el" href="namespacecrashpad.html#a835e6bd6cb3f97c99c572596878c1573ae8cd92df6bc89b12ba3a4f7fe8529f10" title="Kernel-mode state reporting is provided (CONTEXT_EXCEPTION_REPORTING).">kMinidumpContextExceptionReporting</a> is also set. This bit is only used on Windows. </p>
</td></tr>
<tr><td class="fieldname"><a id="a835e6bd6cb3f97c99c572596878c1573a86fb4b3183b9ec5acb7798246f2de9e5"></a>kMinidumpContextExceptionRequest&#160;</td><td class="fielddoc"><p>Kernel-mode state reporting is desired (<code>CONTEXT_EXCEPTION_REQUEST</code>). </p>
<p>This bit is not used in context structures containing snapshots of thread CPU context. It used when calling <code>GetThreadContext()</code> on Windows to specify that kernel-mode state reporting (<a class="el" href="namespacecrashpad.html#a835e6bd6cb3f97c99c572596878c1573ae8cd92df6bc89b12ba3a4f7fe8529f10" title="Kernel-mode state reporting is provided (CONTEXT_EXCEPTION_REPORTING).">kMinidumpContextExceptionReporting</a>) is desired in the returned context structure. </p>
</td></tr>
<tr><td class="fieldname"><a id="a835e6bd6cb3f97c99c572596878c1573ae8cd92df6bc89b12ba3a4f7fe8529f10"></a>kMinidumpContextExceptionReporting&#160;</td><td class="fielddoc"><p>Kernel-mode state reporting is provided (<code>CONTEXT_EXCEPTION_REPORTING</code>). </p>
<p>If this bit is set, it indicates that the bits indicating how the thread had entered kernel mode (<a class="el" href="namespacecrashpad.html#a835e6bd6cb3f97c99c572596878c1573ac76899aed0f9a5f331fcdc9343a1bc68" title="The thread was executing a trap handler in kernel mode (CONTEXT_EXCEPTION_ACTIVE).">kMinidumpContextExceptionActive</a> and <a class="el" href="namespacecrashpad.html#a835e6bd6cb3f97c99c572596878c1573ac0a5b0f61a08eae36fc1ed26fa929ebb" title="The thread was executing a system call in kernel mode (CONTEXT_SERVICE_ACTIVE).">kMinidumpContextServiceActive</a>) are valid. This bit is only used on Windows. </p>
</td></tr>
</table>
</div>
</div>
<a id="a34392d7c57fce1cdcc10bb1f026a79e6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a34392d7c57fce1cdcc10bb1f026a79e6">&#9670;&nbsp;</a></span>MinidumpContextMIPS64Flags</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="namespacecrashpad.html#a34392d7c57fce1cdcc10bb1f026a79e6">crashpad::MinidumpContextMIPS64Flags</a> : uint32_t</td>
</tr>
</table>
</div><div class="memdoc">
<p>64bit MIPS-specifc flags for MinidumpContextMIPS64::context_flags. Based on minidump_cpu_mips.h from breakpad </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="a34392d7c57fce1cdcc10bb1f026a79e6ac66ed0e3d38b9f9a1407141e369f2eab"></a>kMinidumpContextMIPS64&#160;</td><td class="fielddoc"><p>Identifies the context structure as MIPS64EL. </p>
</td></tr>
<tr><td class="fieldname"><a id="a34392d7c57fce1cdcc10bb1f026a79e6a1103efd9dcca8d9e93b8b374ce4f4159"></a>kMinidumpContextMIPS64Integer&#160;</td><td class="fielddoc"><p>Indicates the validity of integer registers. </p>
<p>Registers <code>0</code>-<code>31</code>, <code>mdhi</code>, <code>mdlo</code>, <code>epc</code>, <code>badvaddr</code>, <code>status</code> and <code>cause</code> are valid. </p>
</td></tr>
<tr><td class="fieldname"><a id="a34392d7c57fce1cdcc10bb1f026a79e6a9ea3d63f20eb98526330c2116f7c6592"></a>kMinidumpContextMIPS64FloatingPoint&#160;</td><td class="fielddoc"><p>Indicates the validity of floating point registers. </p>
<p>Floating point registers <code>0</code>-<code>31</code>, <code>fpcsr</code> and <code>fir</code> are valid </p>
</td></tr>
<tr><td class="fieldname"><a id="a34392d7c57fce1cdcc10bb1f026a79e6aa8257cf820054f7b302fb43f2095f593"></a>kMinidumpContextMIPS64DSP&#160;</td><td class="fielddoc"><p>Indicates the validity of DSP registers. </p>
<p>Registers <code>hi0</code>-<code>hi2</code>, <code>lo0</code>-<code>lo2</code> and <code>dsp_control</code> are valid. </p>
</td></tr>
<tr><td class="fieldname"><a id="a34392d7c57fce1cdcc10bb1f026a79e6a63a0cacd444668373017ee893f3ace7d"></a>kMinidumpContextMIPS64All&#160;</td><td class="fielddoc"><p>Indicates the validity of all registers. </p>
</td></tr>
</table>
</div>
</div>
<a id="add06cd316d6db039af0fd3607be18dec"></a>
<h2 class="memtitle"><span class="permalink"><a href="#add06cd316d6db039af0fd3607be18dec">&#9670;&nbsp;</a></span>MinidumpContextMIPSFlags</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="namespacecrashpad.html#add06cd316d6db039af0fd3607be18dec">crashpad::MinidumpContextMIPSFlags</a> : uint32_t</td>
</tr>
</table>
</div><div class="memdoc">
<p>32bit MIPS-specifc flags for MinidumpContextMIPS::context_flags. Based on minidump_cpu_mips.h from breakpad </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="add06cd316d6db039af0fd3607be18decabd6c62963c9acee1da68ccd34a229854"></a>kMinidumpContextMIPS&#160;</td><td class="fielddoc"><p>Identifies the context structure as MIPSEL. </p>
</td></tr>
<tr><td class="fieldname"><a id="add06cd316d6db039af0fd3607be18deca90e0dc6dcdab7f3de6c5410ddd402309"></a>kMinidumpContextMIPSInteger&#160;</td><td class="fielddoc"><p>Indicates the validity of integer registers. </p>
<p>Registers <code>0</code>-<code>31</code>, <code>mdhi</code>, <code>mdlo</code>, <code>epc</code>, <code>badvaddr</code>, <code>status</code> and <code>cause</code> are valid. </p>
</td></tr>
<tr><td class="fieldname"><a id="add06cd316d6db039af0fd3607be18deca54be4bbf692b8e39decc1d170f83cf19"></a>kMinidumpContextMIPSFloatingPoint&#160;</td><td class="fielddoc"><p>Indicates the validity of floating point registers. </p>
<p>Floating point registers <code>0</code>-<code>31</code>, <code>fpcsr</code> and <code>fir</code> are valid </p>
</td></tr>
<tr><td class="fieldname"><a id="add06cd316d6db039af0fd3607be18deca1f3992fb8cabdb968cd785a387d0ea66"></a>kMinidumpContextMIPSDSP&#160;</td><td class="fielddoc"><p>Indicates the validity of DSP registers. </p>
<p>Registers <code>hi0</code>-<code>hi2</code>, <code>lo0</code>-<code>lo2</code> and <code>dsp_control</code> are valid </p>
</td></tr>
<tr><td class="fieldname"><a id="add06cd316d6db039af0fd3607be18deca54a16324b94a737c312c6cac04c5cfd6"></a>kMinidumpContextMIPSAll&#160;</td><td class="fielddoc"><p>Indicates the validity of all registers. </p>
</td></tr>
</table>
</div>
</div>
<a id="a2a503f0a39ec98188b60178edbc1fc55"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2a503f0a39ec98188b60178edbc1fc55">&#9670;&nbsp;</a></span>MinidumpContextX86Flags</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="namespacecrashpad.html#a2a503f0a39ec98188b60178edbc1fc55">crashpad::MinidumpContextX86Flags</a> : uint32_t</td>
</tr>
</table>
</div><div class="memdoc">
<p>32-bit x86-specifc flags for <a class="el" href="structcrashpad_1_1MinidumpContextX86.html#a0b4f61874b6d7bf6bb750e270ceaad80" title="A bitfield composed of values of MinidumpContextFlags and MinidumpContextX86Flags.">MinidumpContextX86::context_flags</a>. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="a2a503f0a39ec98188b60178edbc1fc55a2f6918d087ba8042f2df2342e4fb3875"></a>kMinidumpContextX86&#160;</td><td class="fielddoc"><p>Identifies the context structure as 32-bit x86. This is the same as <code>CONTEXT_i386</code> and <code>CONTEXT_i486</code> on Windows for this architecture. </p>
</td></tr>
<tr><td class="fieldname"><a id="a2a503f0a39ec98188b60178edbc1fc55ada1e4c9c9232467b3f2d3784bceecb7b"></a>kMinidumpContextX86Control&#160;</td><td class="fielddoc"><p>Indicates the validity of control registers (<code>CONTEXT_CONTROL</code>). </p>
<p>The <code>ebp</code>, <code>eip</code>, <code>cs</code>, <code>eflags</code>, <code>esp</code>, and <code>ss</code> fields are valid. </p>
</td></tr>
<tr><td class="fieldname"><a id="a2a503f0a39ec98188b60178edbc1fc55a8cee96af57fd2f7e45350dadd97743ad"></a>kMinidumpContextX86Integer&#160;</td><td class="fielddoc"><p>Indicates the validity of non-control integer registers (<code>CONTEXT_INTEGER</code>). </p>
<p>The <code>edi</code>, <code>esi</code>, <code>ebx</code>, <code>edx</code>, <code>ecx, and</code>eax` fields are valid. </p>
</td></tr>
<tr><td class="fieldname"><a id="a2a503f0a39ec98188b60178edbc1fc55a351a40dfb28c1bed5d3efbaa5109f69e"></a>kMinidumpContextX86Segment&#160;</td><td class="fielddoc"><p>Indicates the validity of non-control segment registers (<code>CONTEXT_SEGMENTS</code>). </p>
<p>The <code>gs</code>, <code>fs</code>, <code>es</code>, and <code>ds</code> fields are valid. </p>
</td></tr>
<tr><td class="fieldname"><a id="a2a503f0a39ec98188b60178edbc1fc55aab6d4add027b8667770e914b21e22471"></a>kMinidumpContextX86FloatingPoint&#160;</td><td class="fielddoc"><p>Indicates the validity of floating-point state (<code>CONTEXT_FLOATING_POINT</code>). </p>
<p>The <code>fsave</code> field is valid. The <code>float_save</code> field is included in this definition, but its members have no practical use asdie from <code>fsave</code>. </p>
</td></tr>
<tr><td class="fieldname"><a id="a2a503f0a39ec98188b60178edbc1fc55a9cab86cf2d37ab8bc0f6ec0fa9a1442e"></a>kMinidumpContextX86Debug&#160;</td><td class="fielddoc"><p>Indicates the validity of debug registers (<code>CONTEXT_DEBUG_REGISTERS</code>). </p>
<p>The <code>dr0</code> through <code>dr3</code>, <code>dr6</code>, and <code>dr7</code> fields are valid. </p>
</td></tr>
<tr><td class="fieldname"><a id="a2a503f0a39ec98188b60178edbc1fc55afbe5d3708e41ca9b92a6d3acb6f6f322"></a>kMinidumpContextX86Extended&#160;</td><td class="fielddoc"><p>Indicates the validity of extended registers in <code>fxsave</code> format (<code>CONTEXT_EXTENDED_REGISTERS</code>). </p>
<p>The <code>extended_registers</code> field is valid and contains <code>fxsave</code> data. </p>
</td></tr>
<tr><td class="fieldname"><a id="a2a503f0a39ec98188b60178edbc1fc55a2e59094ad192c7388e85ca768d741dd4"></a>kMinidumpContextX86Xstate&#160;</td><td class="fielddoc"><p>Indicates the validity of <code>xsave</code> data (<code>CONTEXT_XSTATE</code>). </p>
<p>The context contains <code>xsave</code> data. This is used with an extended context structure not currently defined here. </p>
</td></tr>
<tr><td class="fieldname"><a id="a2a503f0a39ec98188b60178edbc1fc55a8dd8413af4852a4ca699b17a4d39d7bd"></a>kMinidumpContextX86Full&#160;</td><td class="fielddoc"><p>Indicates the validity of control, integer, and segment registers. (<code>CONTEXT_FULL</code>). </p>
</td></tr>
<tr><td class="fieldname"><a id="a2a503f0a39ec98188b60178edbc1fc55a49dd96e7cd1bb82c676a38eece63d63f"></a>kMinidumpContextX86All&#160;</td><td class="fielddoc"><p>Indicates the validity of all registers except <code>xsave</code> data. (<code>CONTEXT_ALL</code>). </p>
</td></tr>
</table>
</div>
</div>
<a id="a98e532bb06fc5ffdd93e0ceb6d789eb1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a98e532bb06fc5ffdd93e0ceb6d789eb1">&#9670;&nbsp;</a></span>MinidumpCPUArchitecture</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="namespacecrashpad.html#a98e532bb06fc5ffdd93e0ceb6d789eb1">crashpad::MinidumpCPUArchitecture</a> : uint16_t</td>
</tr>
</table>
</div><div class="memdoc">
<p>CPU type values for <a class="el" href="structMINIDUMP__SYSTEM__INFO.html#adc85b29d7df8943baf1a96af23051ca8" title="The system’s CPU architecture. This may be a PROCESSOR_ARCHITECTURE_* value, or a member of crashpad:...">MINIDUMP_SYSTEM_INFO::ProcessorArchitecture</a>. </p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="winnt_8h.html#PROCESSOR_ARCHITECTURE_x">PROCESSOR_ARCHITECTURE_*</a> </dd></dl>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="a98e532bb06fc5ffdd93e0ceb6d789eb1a667f84537acd054ce17f527bcd41c885"></a>kMinidumpCPUArchitectureX86&#160;</td><td class="fielddoc"><p>32-bit x86. </p>
<p>These systems identify their CPUs generically as “x86” or “ia32”, or with more specific names such as “i386”, “i486”, “i586”, and “i686”. </p>
</td></tr>
<tr><td class="fieldname"><a id="a98e532bb06fc5ffdd93e0ceb6d789eb1a37feeb34e5df713f24a65f8687d23def"></a>kMinidumpCPUArchitecturePPC&#160;</td><td class="fielddoc"><p>32-bit PowerPC. </p>
<p>These systems identify their CPUs generically as “ppc”, or with more specific names such as “ppc6xx”, “ppc7xx”, and “ppc74xx”. </p>
</td></tr>
<tr><td class="fieldname"><a id="a98e532bb06fc5ffdd93e0ceb6d789eb1a8ab29cb3332c3c583c4d60b2c308361c"></a>kMinidumpCPUArchitectureARM&#160;</td><td class="fielddoc"><p>32-bit ARM. </p>
<p>These systems identify their CPUs generically as “arm”, or with more specific names such as “armv6” and “armv7”. </p>
</td></tr>
<tr><td class="fieldname"><a id="a98e532bb06fc5ffdd93e0ceb6d789eb1a74c0fcddcbf1502d7dedc7cd965550df"></a>kMinidumpCPUArchitectureAMD64&#160;</td><td class="fielddoc"><p>64-bit x86. </p>
<p>These systems identify their CPUs as “x86_64”, “amd64”, or “x64”. </p>
</td></tr>
<tr><td class="fieldname"><a id="a98e532bb06fc5ffdd93e0ceb6d789eb1a492f53b6303f91d08192bbfb9341e3cb"></a>kMinidumpCPUArchitectureX86Win64&#160;</td><td class="fielddoc"><p>A 32-bit x86 process running on IA-64 (Itanium). </p>
<dl class="section note"><dt>Note</dt><dd>This value is not used in minidump files for 32-bit x86 processes running on a 64-bit-capable x86 CPU and operating system. In that configuration, <a class="el" href="namespacecrashpad.html#a98e532bb06fc5ffdd93e0ceb6d789eb1a667f84537acd054ce17f527bcd41c885" title="32-bit x86.">kMinidumpCPUArchitectureX86</a> is used instead. </dd></dl>
</td></tr>
<tr><td class="fieldname"><a id="a98e532bb06fc5ffdd93e0ceb6d789eb1aa58a9c127a74412bdcbce29f0ac6d9f5"></a>kMinidumpCPUArchitectureARM64&#160;</td><td class="fielddoc"><p>64-bit ARM. </p>
<p>These systems identify their CPUs generically as “arm64” or “aarch64”, or with more specific names such as “armv8”.</p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="namespacecrashpad.html#a98e532bb06fc5ffdd93e0ceb6d789eb1af06c5024168bed0a96de94e665ba2e70" title="Used by Breakpad for 64-bit ARM.">kMinidumpCPUArchitectureARM64Breakpad</a> </dd></dl>
</td></tr>
<tr><td class="fieldname"><a id="a98e532bb06fc5ffdd93e0ceb6d789eb1a96f1b70341467cfcaabaac225345716b"></a>kMinidumpCPUArchitecturePPC64&#160;</td><td class="fielddoc"><p>64-bit PowerPC. </p>
<p>These systems identify their CPUs generically as “ppc64”, or with more specific names such as “ppc970”. </p>
</td></tr>
<tr><td class="fieldname"><a id="a98e532bb06fc5ffdd93e0ceb6d789eb1af06c5024168bed0a96de94e665ba2e70"></a>kMinidumpCPUArchitectureARM64Breakpad&#160;</td><td class="fielddoc"><p>Used by Breakpad for 64-bit ARM. </p>
<dl class="deprecated"><dt><b><a class="el" href="deprecated.html#_deprecated000001">Deprecated:</a></b></dt><dd>Use <a class="el" href="namespacecrashpad.html#a98e532bb06fc5ffdd93e0ceb6d789eb1aa58a9c127a74412bdcbce29f0ac6d9f5" title="64-bit ARM.">kMinidumpCPUArchitectureARM64</a> instead. </dd></dl>
</td></tr>
<tr><td class="fieldname"><a id="a98e532bb06fc5ffdd93e0ceb6d789eb1a1d0ecd96474945b642af3568bc43ab92"></a>kMinidumpCPUArchitectureUnknown&#160;</td><td class="fielddoc"><p>Unknown CPU architecture. </p>
</td></tr>
</table>
</div>
</div>
<a id="a9be77c6f7868f00c2f279006a1abe26a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9be77c6f7868f00c2f279006a1abe26a">&#9670;&nbsp;</a></span>MinidumpOS</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="namespacecrashpad.html#a9be77c6f7868f00c2f279006a1abe26a">crashpad::MinidumpOS</a> : uint32_t</td>
</tr>
</table>
</div><div class="memdoc">
<p>Operating system family values for <a class="el" href="structMINIDUMP__SYSTEM__INFO.html#a214e7bd61a89343a80a3c9a265fbbe96" title="The system’s operating system family. This may be a VER_PLATFORM_* value, or a member of crashpad::Mi...">MINIDUMP_SYSTEM_INFO::PlatformId</a>. </p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="winnt_8h.html#VER_PLATFORM_x">VER_PLATFORM_*</a> </dd></dl>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="a9be77c6f7868f00c2f279006a1abe26aaca1cab5b93dabab4c83400fd74dc61f9"></a>kMinidumpOSWin32s&#160;</td><td class="fielddoc"><p>Windows 3.1. </p>
</td></tr>
<tr><td class="fieldname"><a id="a9be77c6f7868f00c2f279006a1abe26aa652417bb9221b48e7086f8b5e7055e72"></a>kMinidumpOSWin32Windows&#160;</td><td class="fielddoc"><p>Windows 95, Windows 98, and Windows Me. </p>
</td></tr>
<tr><td class="fieldname"><a id="a9be77c6f7868f00c2f279006a1abe26aa00fdfb21197a2b114e5ffeb51f53e3df"></a>kMinidumpOSWin32NT&#160;</td><td class="fielddoc"><p>Windows NT, Windows 2000, and later. </p>
</td></tr>
<tr><td class="fieldname"><a id="a9be77c6f7868f00c2f279006a1abe26aa03b20aa69a12cad7a9c08b3335b309d3"></a>kMinidumpOSMacOSX&#160;</td><td class="fielddoc"><p>macOS, Darwin for traditional systems. </p>
</td></tr>
<tr><td class="fieldname"><a id="a9be77c6f7868f00c2f279006a1abe26aaa2bd6cb000781ac60ed0b769cd8fb524"></a>kMinidumpOSIOS&#160;</td><td class="fielddoc"><p>iOS, Darwin for mobile devices. </p>
</td></tr>
<tr><td class="fieldname"><a id="a9be77c6f7868f00c2f279006a1abe26aa126dc921b6c301f5ce7d111a29b72d4f"></a>kMinidumpOSLinux&#160;</td><td class="fielddoc"><p>Linux, not including Android. </p>
</td></tr>
<tr><td class="fieldname"><a id="a9be77c6f7868f00c2f279006a1abe26aa071bb71519a869fa5cf7004114b979d9"></a>kMinidumpOSAndroid&#160;</td><td class="fielddoc"><p>Android. </p>
</td></tr>
<tr><td class="fieldname"><a id="a9be77c6f7868f00c2f279006a1abe26aaf352d155051b508a5452a18e29f473bb"></a>kMinidumpOSNaCl&#160;</td><td class="fielddoc"><p>Native Client (NaCl). </p>
</td></tr>
<tr><td class="fieldname"><a id="a9be77c6f7868f00c2f279006a1abe26aa294f08220dc09d02f03b25db81b8c5cf"></a>kMinidumpOSFuchsia&#160;</td><td class="fielddoc"><p>Fuchsia. </p>
</td></tr>
<tr><td class="fieldname"><a id="a9be77c6f7868f00c2f279006a1abe26aa7f4f96b9f35fbad451bb4c09cedfba07"></a>kMinidumpOSUnknown&#160;</td><td class="fielddoc"><p>Unknown operating system. </p>
</td></tr>
</table>
</div>
</div>
<a id="a3bf5a6562c9ccee9b4ef3ae4d9ac0be7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3bf5a6562c9ccee9b4ef3ae4d9ac0be7">&#9670;&nbsp;</a></span>MinidumpOSType</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="namespacecrashpad.html#a3bf5a6562c9ccee9b4ef3ae4d9ac0be7">crashpad::MinidumpOSType</a> : uint8_t</td>
</tr>
</table>
</div><div class="memdoc">
<p>Operating system type values for <a class="el" href="structMINIDUMP__SYSTEM__INFO.html#a9aac8ed4707ea43563fed1776454bad5" title="The system’s operating system type, which distinguishes between “desktop” or “workstation” systems an...">MINIDUMP_SYSTEM_INFO::ProductType</a>. </p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="winnt_8h.html#VER_NT_x">VER_NT_*</a> </dd></dl>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="a3bf5a6562c9ccee9b4ef3ae4d9ac0be7a622c5cb563f37f8861f7c58e3ec64a05"></a>kMinidumpOSTypeWorkstation&#160;</td><td class="fielddoc"><p>A “desktop” or “workstation” system. </p>
</td></tr>
<tr><td class="fieldname"><a id="a3bf5a6562c9ccee9b4ef3ae4d9ac0be7a4d37fbae0e055c62b5bfe36797b8a592"></a>kMinidumpOSTypeDomainController&#160;</td><td class="fielddoc"><p>A “domain controller” system. Windows-specific. </p>
</td></tr>
<tr><td class="fieldname"><a id="a3bf5a6562c9ccee9b4ef3ae4d9ac0be7aaf31279bbe240bb77304d8d0f4a8f949"></a>kMinidumpOSTypeServer&#160;</td><td class="fielddoc"><p>A “server” system. </p>
</td></tr>
</table>
</div>
</div>
<a id="a88363a45a4af1a16f542a8c1ff522ab9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a88363a45a4af1a16f542a8c1ff522ab9">&#9670;&nbsp;</a></span>MinidumpStreamType</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="namespacecrashpad.html#a88363a45a4af1a16f542a8c1ff522ab9">crashpad::MinidumpStreamType</a> : uint32_t</td>
</tr>
</table>
</div><div class="memdoc">
<p>Minidump stream type values for <a class="el" href="structMINIDUMP__DIRECTORY.html#a425b8b68da6810a126c759c5f5a94f7d" title="The type of stream referenced, a value of MINIDUMP_STREAM_TYPE.">MINIDUMP_DIRECTORY::StreamType</a>. Each stream structure has a corresponding stream type value to identify it. </p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="dbghelp_8h.html#a64711234318a4a002f399dffb474ca08" title="Minidump stream type values for MINIDUMP_DIRECTORY::StreamType. Each stream structure has a correspon...">MINIDUMP_STREAM_TYPE</a> </dd></dl>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="a88363a45a4af1a16f542a8c1ff522ab9af87c478a3f2ce198936d817e98d87531"></a>kMinidumpStreamTypeThreadList&#160;</td><td class="fielddoc"><p>The stream type for <a class="el" href="structMINIDUMP__THREAD__LIST.html" title="Information about all threads within the process.">MINIDUMP_THREAD_LIST</a>. </p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="dbghelp_8h.html#a64711234318a4a002f399dffb474ca08a4dd234223e39c89f93aabce77e649d2c" title="The stream type for MINIDUMP_THREAD_LIST.">ThreadListStream</a> </dd></dl>
</td></tr>
<tr><td class="fieldname"><a id="a88363a45a4af1a16f542a8c1ff522ab9a226cb7d075ec01c79f233d098e9a9e3f"></a>kMinidumpStreamTypeModuleList&#160;</td><td class="fielddoc"><p>The stream type for <a class="el" href="structMINIDUMP__MODULE__LIST.html" title="Information about all modules loaded within the process at the time the snapshot was taken.">MINIDUMP_MODULE_LIST</a>. </p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="dbghelp_8h.html#a64711234318a4a002f399dffb474ca08ad404c18554f01aa57ac0af1a7674060b" title="The stream type for MINIDUMP_MODULE_LIST.">ModuleListStream</a> </dd></dl>
</td></tr>
<tr><td class="fieldname"><a id="a88363a45a4af1a16f542a8c1ff522ab9ac9923e6a5c46946ba2cdc8ce4272c181"></a>kMinidumpStreamTypeMemoryList&#160;</td><td class="fielddoc"><p>The stream type for <a class="el" href="structMINIDUMP__MEMORY__LIST.html" title="Information about memory regions within the process.">MINIDUMP_MEMORY_LIST</a>. </p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="dbghelp_8h.html#a64711234318a4a002f399dffb474ca08a1511624630cd9150436de906ae033cbd" title="The stream type for MINIDUMP_MEMORY_LIST.">MemoryListStream</a> </dd></dl>
</td></tr>
<tr><td class="fieldname"><a id="a88363a45a4af1a16f542a8c1ff522ab9a445b370a989c63b41f4080c2584912e7"></a>kMinidumpStreamTypeException&#160;</td><td class="fielddoc"><p>The stream type for <a class="el" href="structMINIDUMP__EXCEPTION__STREAM.html" title="Information about the exception that triggered a minidump file’s generation.">MINIDUMP_EXCEPTION_STREAM</a>. </p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="dbghelp_8h.html#a64711234318a4a002f399dffb474ca08a5ddc831e2440dfcfd112cb19401bbd60" title="The stream type for MINIDUMP_EXCEPTION_STREAM.">ExceptionStream</a> </dd></dl>
</td></tr>
<tr><td class="fieldname"><a id="a88363a45a4af1a16f542a8c1ff522ab9a57ae6ef428bb48fdc877d92bc8046bd3"></a>kMinidumpStreamTypeSystemInfo&#160;</td><td class="fielddoc"><p>The stream type for <a class="el" href="structMINIDUMP__SYSTEM__INFO.html" title="Information about the system that hosted the process that the minidump file contains a snapshot of.">MINIDUMP_SYSTEM_INFO</a>. </p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="dbghelp_8h.html#a64711234318a4a002f399dffb474ca08a36ca9398c8a42fa4ec2b4baf9c3d3474" title="The stream type for MINIDUMP_SYSTEM_INFO.">SystemInfoStream</a> </dd></dl>
</td></tr>
<tr><td class="fieldname"><a id="a88363a45a4af1a16f542a8c1ff522ab9a956e21d34f0d97aa5b3b640b1676ef37"></a>kMinidumpStreamTypeHandleData&#160;</td><td class="fielddoc"><p>The stream type for MINIDUMP_HANDLE_DATA_STREAM. </p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="dbghelp_8h.html#a64711234318a4a002f399dffb474ca08ad7775c9c100abafc1b864499acf84757" title="The stream contains information about active HANDLEs.">HandleDataStream</a> </dd></dl>
</td></tr>
<tr><td class="fieldname"><a id="a88363a45a4af1a16f542a8c1ff522ab9afab92691d30e4386b008dab71fe359f6"></a>kMinidumpStreamTypeUnloadedModuleList&#160;</td><td class="fielddoc"><p>The stream type for <a class="el" href="structMINIDUMP__UNLOADED__MODULE__LIST.html" title="Information about all modules recorded as unloaded when the snapshot was taken.">MINIDUMP_UNLOADED_MODULE_LIST</a>. </p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="dbghelp_8h.html#a64711234318a4a002f399dffb474ca08ac9a369c7cfd7b0c05208e4af380c4bba" title="The stream type for MINIDUMP_UNLOADED_MODULE_LIST.">UnloadedModuleListStream</a> </dd></dl>
</td></tr>
<tr><td class="fieldname"><a id="a88363a45a4af1a16f542a8c1ff522ab9a631532de9316c7cb41cf27b2df2f802f"></a>kMinidumpStreamTypeMiscInfo&#160;</td><td class="fielddoc"><p>The stream type for <a class="el" href="structMINIDUMP__MISC__INFO.html" title="Information about the process that the minidump file contains a snapshot of, as well as the system th...">MINIDUMP_MISC_INFO</a>, <a class="el" href="structMINIDUMP__MISC__INFO__2.html" title="Information about the process that the minidump file contains a snapshot of, as well as the system th...">MINIDUMP_MISC_INFO_2</a>, <a class="el" href="structMINIDUMP__MISC__INFO__3.html" title="Information about the process that the minidump file contains a snapshot of, as well as the system th...">MINIDUMP_MISC_INFO_3</a>, and <a class="el" href="structMINIDUMP__MISC__INFO__4.html" title="Information about the process that the minidump file contains a snapshot of, as well as the system th...">MINIDUMP_MISC_INFO_4</a>. </p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="dbghelp_8h.html#a64711234318a4a002f399dffb474ca08a02e9fb2f037d09f1cdb4eb0c9f115b33" title="The stream type for MINIDUMP_MISC_INFO, MINIDUMP_MISC_INFO_2, MINIDUMP_MISC_INFO_3,...">MiscInfoStream</a> </dd></dl>
</td></tr>
<tr><td class="fieldname"><a id="a88363a45a4af1a16f542a8c1ff522ab9ab6f692da21dc09fb3c17a186fdc3271b"></a>kMinidumpStreamTypeMemoryInfoList&#160;</td><td class="fielddoc"><p>The stream type for <a class="el" href="structMINIDUMP__MEMORY__INFO__LIST.html" title="Contains a list of memory regions.">MINIDUMP_MEMORY_INFO_LIST</a>. </p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="dbghelp_8h.html#a64711234318a4a002f399dffb474ca08ab3437fce4862d62ca22f4933cada4d43" title="The stream type for MINIDUMP_MEMORY_INFO_LIST.">MemoryInfoListStream</a> </dd></dl>
</td></tr>
<tr><td class="fieldname"><a id="a88363a45a4af1a16f542a8c1ff522ab9a1733d8eaab5c094b526725b95f6953e8"></a>kMinidumpStreamTypeLastReservedStream&#160;</td><td class="fielddoc"><p>The last reserved minidump stream. </p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="dbghelp_8h.html#a64711234318a4a002f399dffb474ca08ab3437fce4862d62ca22f4933cada4d43" title="The stream type for MINIDUMP_MEMORY_INFO_LIST.">MemoryInfoListStream</a> </dd></dl>
</td></tr>
<tr><td class="fieldname"><a id="a88363a45a4af1a16f542a8c1ff522ab9af1056a1f748bba4c88fa8f4104771d00"></a>kMinidumpStreamTypeCrashpadInfo&#160;</td><td class="fielddoc"><p>The stream type for <a class="el" href="structcrashpad_1_1MinidumpCrashpadInfo.html" title="Additional Crashpad-specific information carried within a minidump file.">MinidumpCrashpadInfo</a>. </p>
</td></tr>
<tr><td class="fieldname"><a id="a88363a45a4af1a16f542a8c1ff522ab9ad1eb36ce2b22223914b2479a450304a9"></a>kMinidumpStreamTypeCrashpadLastReservedStream&#160;</td><td class="fielddoc"><p>The last reserved crashpad stream. </p>
</td></tr>
</table>
</div>
</div>
<a id="ab96bb7edb42a2e1ce28eda205a18a17a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab96bb7edb42a2e1ce28eda205a18a17a">&#9670;&nbsp;</a></span>ProcessSuspensionState</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="namespacecrashpad.html#ab96bb7edb42a2e1ce28eda205a18a17a">crashpad::ProcessSuspensionState</a> : bool</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>State of process being read by <a class="el" href="classcrashpad_1_1ProcessReaderWin.html" title="Accesses information about another process, identified by a HANDLE.">ProcessReaderWin</a>. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="ab96bb7edb42a2e1ce28eda205a18a17aa2fc7fbf0d19294f85dd3880460dd3c0a"></a>kRunning&#160;</td><td class="fielddoc"><p>The process has not been suspended. </p>
</td></tr>
<tr><td class="fieldname"><a id="ab96bb7edb42a2e1ce28eda205a18a17aa6e09d95243f1f7bec7d0061e5831dc82"></a>kSuspended&#160;</td><td class="fielddoc"><p>The process is suspended. </p>
</td></tr>
</table>
</div>
</div>
<a id="a8402ddae562db04a8daf6bffecaded5b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8402ddae562db04a8daf6bffecaded5b">&#9670;&nbsp;</a></span>StdioStream</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="namespacecrashpad.html#a8402ddae562db04a8daf6bffecaded5b">crashpad::StdioStream</a></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>Determines the FileHandle that <a class="el" href="namespacecrashpad.html#ac6eccc3b9b90d2dd74048a43c9002e88" title="Returns a FileHandle corresponding to the requested standard I/O stream.">StdioFileHandle()</a> returns. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="a8402ddae562db04a8daf6bffecaded5ba9ce2feb67c200b9dec30fdec04ef32e2"></a>kStandardInput&#160;</td><td class="fielddoc"><p>Standard input, or <code>stdin</code>. </p>
</td></tr>
<tr><td class="fieldname"><a id="a8402ddae562db04a8daf6bffecaded5ba59d7b68e88996f02ef0d89547ae4d127"></a>kStandardOutput&#160;</td><td class="fielddoc"><p>Standard output, or <code>stdout</code>. </p>
</td></tr>
<tr><td class="fieldname"><a id="a8402ddae562db04a8daf6bffecaded5ba6012275f61c3c1fff0012cf9c9e646b0"></a>kStandardError&#160;</td><td class="fielddoc"><p>Standard error, or <code>stderr</code>. </p>
</td></tr>
</table>
</div>
</div>
<a id="a8387ad067a7e6a1735ab97a1af450d2b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8387ad067a7e6a1735ab97a1af450d2b">&#9670;&nbsp;</a></span>StringToSymbolicConstantOptionBits</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="namespacecrashpad.html#a8387ad067a7e6a1735ab97a1af450d2b">crashpad::StringToSymbolicConstantOptionBits</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>Options for various <code>StringTo*</code> functions in <code>symbolic_constants_*</code> files. </p>
<p>Not every <code>StringTo*</code> function will implement each of these options. See function-specific documentation for details.</p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="symbolic__constants__common_8h.html#symbolic_constant_terminology">Symbolic constant terminology</a> </dd></dl>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="a8387ad067a7e6a1735ab97a1af450d2ba1ca8cfec5f4774db61b0359f6905cb49"></a>kAllowFullName&#160;</td><td class="fielddoc"><p>Allow conversion from a string containing a symbolic constant by its full name. </p>
</td></tr>
<tr><td class="fieldname"><a id="a8387ad067a7e6a1735ab97a1af450d2ba56cf2e379949ef54954bf3d23ca38e85"></a>kAllowShortName&#160;</td><td class="fielddoc"><p>Allow conversion from a string containing a symbolic constant by its short name. </p>
</td></tr>
<tr><td class="fieldname"><a id="a8387ad067a7e6a1735ab97a1af450d2ba9021a9f07e3e4eb819ac567dd4d28b6f"></a>kAllowNumber&#160;</td><td class="fielddoc"><p>Allow conversion from a numeric string. </p>
</td></tr>
<tr><td class="fieldname"><a id="a8387ad067a7e6a1735ab97a1af450d2ba060cbf403d47785a69b249e9c562f410"></a>kAllowOr&#160;</td><td class="fielddoc"><p>Allow <code>|</code> to combine values in a bitfield. </p>
<p>For families whose values may be constructed as bitfields, allow conversion of strings containing multiple individual components treated as being combined by a bitwise “or” operation. An example family of constants that behaves this way is the suite of Mach exception masks. For constants that are not constructed as bitfields, or constants that are only partially constructed as bitfields, this option has no effect. </p>
</td></tr>
</table>
</div>
</div>
<a id="a7856b82b71167792ea6103debb5105ed"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7856b82b71167792ea6103debb5105ed">&#9670;&nbsp;</a></span>SymbolicConstantToStringOptionBits</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="namespacecrashpad.html#a7856b82b71167792ea6103debb5105ed">crashpad::SymbolicConstantToStringOptionBits</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>Options for various <code>*ToString</code> functions in <code>symbolic_constants_*</code> files. </p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="symbolic__constants__common_8h.html#symbolic_constant_terminology">Symbolic constant terminology</a> </dd></dl>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="a7856b82b71167792ea6103debb5105edad497286630d39fe9b19c950a85c56db7"></a>kUseFullName&#160;</td><td class="fielddoc"><p>Return the full name for a given constant. </p>
<dl class="section attention"><dt>Attention</dt><dd>API consumers should provide this value when desired, but should provide only one of kUseFullName and <a class="el" href="namespacecrashpad.html#a7856b82b71167792ea6103debb5105eda127e077880ede5d2f87b87873d46ea55" title="Return the short name for a given constant.">kUseShortName</a>. Because kUseFullName is valueless, implementers should check for the absence of <a class="el" href="namespacecrashpad.html#a7856b82b71167792ea6103debb5105eda127e077880ede5d2f87b87873d46ea55" title="Return the short name for a given constant.">kUseShortName</a> instead. </dd></dl>
</td></tr>
<tr><td class="fieldname"><a id="a7856b82b71167792ea6103debb5105eda127e077880ede5d2f87b87873d46ea55"></a>kUseShortName&#160;</td><td class="fielddoc"><p>Return the short name for a given constant. </p>
</td></tr>
<tr><td class="fieldname"><a id="a7856b82b71167792ea6103debb5105eda6fd207e044b85ec202143881fcd5eb2e"></a>kUnknownIsEmpty&#160;</td><td class="fielddoc"><p>If no symbolic name is known for a given constant, return an empty string. </p>
<dl class="section attention"><dt>Attention</dt><dd>API consumers should provide this value when desired, but should provide only one of kUnknownIsEmpty and <a class="el" href="namespacecrashpad.html#a7856b82b71167792ea6103debb5105edaf9da07820c9857c86422b70c3cc33c12" title="If no symbolic name is known for a given constant, return a numeric string.">kUnknownIsNumeric</a>. Because kUnknownIsEmpty is valueless, implementers should check for the absence of <a class="el" href="namespacecrashpad.html#a7856b82b71167792ea6103debb5105edaf9da07820c9857c86422b70c3cc33c12" title="If no symbolic name is known for a given constant, return a numeric string.">kUnknownIsNumeric</a> instead. </dd></dl>
</td></tr>
<tr><td class="fieldname"><a id="a7856b82b71167792ea6103debb5105edaf9da07820c9857c86422b70c3cc33c12"></a>kUnknownIsNumeric&#160;</td><td class="fielddoc"><p>If no symbolic name is known for a given constant, return a numeric string. </p>
<p>The numeric format used will vary by family, but will be appropriate to the family. Families whose values are typically constructed as bitfields will generally use a hexadecimal format, and other families will generally use a signed or unsigned decimal format. </p>
</td></tr>
<tr><td class="fieldname"><a id="a7856b82b71167792ea6103debb5105eda18aa149c3471a5129274df2af6972f04"></a>kUseOr&#160;</td><td class="fielddoc"><p>Use <code>|</code> to combine values in a bitfield. </p>
<p>For families whose values may be constructed as bitfields, allow conversion to strings containing multiple individual components treated as being combined by a bitwise “or” operation. An example family of constants that behaves this way is the suite of Mach exception masks. For constants that are not constructed as bitfields, or constants that are only partially constructed as bitfields, this option has no effect. </p>
</td></tr>
</table>
</div>
</div>
<a id="acf909fcc58999f95ab1a2d485a3b884f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acf909fcc58999f95ab1a2d485a3b884f">&#9670;&nbsp;</a></span>TerminationCodes</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="namespacecrashpad.html#acf909fcc58999f95ab1a2d485a3b884f">crashpad::TerminationCodes</a> : unsigned int</td>
</tr>
</table>
</div><div class="memdoc">
<p>Crashpad-specific codes that are used as arguments to <a class="el" href="namespacecrashpad.html#ad8efd0f50febdf3c8461fb93de8191f7" title="Calls TerminateProcess().">SafeTerminateProcess()</a> or <code>TerminateProcess()</code> in unusual circumstances. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="acf909fcc58999f95ab1a2d485a3b884fa80056c7b41974ff409381f83677977fb"></a>kTerminationCodeCrashNoDump&#160;</td><td class="fielddoc"><p>The crash handler did not respond, and the client self-terminated. </p>
</td></tr>
<tr><td class="fieldname"><a id="acf909fcc58999f95ab1a2d485a3b884fa360db709d75512a0e6b8a27b9b122910"></a>kTerminationCodeSnapshotFailed&#160;</td><td class="fielddoc"><p>The initial process snapshot failed, so the correct client termination code could not be retrieved. </p>
</td></tr>
<tr><td class="fieldname"><a id="acf909fcc58999f95ab1a2d485a3b884fa3110b7733dd8d446957e061cb8fb37d2"></a>kTerminationCodeNotConnectedToHandler&#160;</td><td class="fielddoc"><p>A dump was requested for a client that was never registered with the crash handler. </p>
</td></tr>
</table>
</div>
</div>
<a id="a3b405c19a5787fabcfba96001d49f292"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3b405c19a5787fabcfba96001d49f292">&#9670;&nbsp;</a></span>TriState</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="namespacecrashpad.html#a3b405c19a5787fabcfba96001d49f292">crashpad::TriState</a> : uint8_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>A tri-state value that can be unset, on, or off. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="a3b405c19a5787fabcfba96001d49f292ac69d34d47bfd5244204004878441d53f"></a>kUnset&#160;</td><td class="fielddoc"><p>The value has not explicitly been set. </p>
<p>To allow a zero-initialized value to have this behavior, this must have the value <code>0</code>. </p>
</td></tr>
<tr><td class="fieldname"><a id="a3b405c19a5787fabcfba96001d49f292ade1ec1870756a80dffbdc4cda53153e0"></a>kEnabled&#160;</td><td class="fielddoc"><p>The value has explicitly been set to on, or a behavior has explicitly been enabled. </p>
</td></tr>
<tr><td class="fieldname"><a id="a3b405c19a5787fabcfba96001d49f292a7b04d8795f5fd03c761ce70dab985fee"></a>kDisabled&#160;</td><td class="fielddoc"><p>The value has explicitly been set to off, or a behavior has explicitly been disabled. </p>
</td></tr>
</table>
</div>
</div>
<a id="a589b4d9bd6f2233b67148ab6793c3c13"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a589b4d9bd6f2233b67148ab6793c3c13">&#9670;&nbsp;</a></span>XattrStatus</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="namespacecrashpad.html#a589b4d9bd6f2233b67148ab6793c3c13">crashpad::XattrStatus</a></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 code for a ReadXattr operation. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="a589b4d9bd6f2233b67148ab6793c3c13ab8c5bbba307a5b38f6a1474fbf23dddd"></a>kOK&#160;</td><td class="fielddoc"><p>No error occured. No message is logged. </p>
</td></tr>
<tr><td class="fieldname"><a id="a589b4d9bd6f2233b67148ab6793c3c13a56b68c332155feb30564a8ebd779ba67"></a>kNoAttribute&#160;</td><td class="fielddoc"><p>The attribute does not exist. No message is logged. </p>
</td></tr>
<tr><td class="fieldname"><a id="a589b4d9bd6f2233b67148ab6793c3c13a298223b78cd88f4983fbc5ae093136ca"></a>kOtherError&#160;</td><td class="fielddoc"><p>An error occurred and an error message was logged. </p>
</td></tr>
</table>
</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a id="af0004297cf46f8fd00258e02a4bcf13a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af0004297cf46f8fd00258e02a4bcf13a">&#9670;&nbsp;</a></span>AddUserExtensionStreams()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void crashpad::AddUserExtensionStreams </td>
<td>(</td>
<td class="paramtype">const UserStreamDataSources *&#160;</td>
<td class="paramname"><em>user_stream_data_sources</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classcrashpad_1_1ProcessSnapshot.html">ProcessSnapshot</a> *&#160;</td>
<td class="paramname"><em>process_snapshot</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classcrashpad_1_1MinidumpFileWriter.html">MinidumpFileWriter</a> *&#160;</td>
<td class="paramname"><em>minidump_file_writer</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Adds user extension streams to a minidump. </p>
<p>Dispatches to each source in <em>user_stream_data_sources</em> and adds returned extension streams to <em>minidump_file_writer</em>.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">user_stream_data_sources</td><td>A pointer to the data sources, or <code>nullptr</code>. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">process_snapshot</td><td>An initialized snapshot to the crashing process. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">minidump_file_writer</td><td>Any extension streams will be added to this minidump. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a2a2aeb6f5cc4e5b302c6da3141e1b9c4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2a2aeb6f5cc4e5b302c6da3141e1b9c4">&#9670;&nbsp;</a></span>AdvancePastNumber()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
<table class="memname">
<tr>
<td class="memname">bool crashpad::AdvancePastNumber </td>
<td>(</td>
<td class="paramtype">const char **&#160;</td>
<td class="paramname"><em>input</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">T *&#160;</td>
<td class="paramname"><em>value</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Convert a prefix of a char string to a numeric value. </p>
<p>Valid values are positive or negative decimal numbers, matching the regular expression "-?\d+", and within the limits of T.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in,out]</td><td class="paramname">input</td><td>A pointer to the char string to match against. <em>input</em> is advanced past the number if one is found. </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">value</td><td>The converted number, if one is found. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><code>true</code> if a number is found at the start of <em>input</em> and <em>input</em> is advanced, otherwise <code>false</code>. </dd></dl>
</div>
</div>
<a id="ad37351a34cc3b9282a1f590062b5368d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad37351a34cc3b9282a1f590062b5368d">&#9670;&nbsp;</a></span>AdvancePastPrefix()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool crashpad::AdvancePastPrefix </td>
<td>(</td>
<td class="paramtype">const char **&#160;</td>
<td class="paramname"><em>input</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>pattern</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Match a pattern at the start of a char string. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in,out]</td><td class="paramname">input</td><td>A pointer to the char string to match against. <em>input</em> is advanced past the matched pattern if it is found. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">pattern</td><td>The pattern to match at the start of <em>input</em>. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><code>true</code> if the pattern is matched exactly and <em>input</em> is advanced, otherwise <code>false</code>. </dd></dl>
</div>
</div>
<a id="ab8be7196ea1ef43c438be47b1f3bbf57"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab8be7196ea1ef43c438be47b1f3bbf57">&#9670;&nbsp;</a></span>AlignedAllocate()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void * crashpad::AlignedAllocate </td>
<td>(</td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>alignment</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>size</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Allocates memory with the specified alignment constraint. </p>
<p>This function wraps <code>posix_memalign()</code> or <code>_aligned_malloc()</code>. Memory allocated by this function must be released by AlignFree(). </p>
</div>
</div>
<a id="a4d4cc77fb390eed171c11c6e06b78c85"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4d4cc77fb390eed171c11c6e06b78c85">&#9670;&nbsp;</a></span>AlignedFree()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void crashpad::AlignedFree </td>
<td>(</td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>pointer</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Frees memory allocated by <a class="el" href="namespacecrashpad.html#ab8be7196ea1ef43c438be47b1f3bbf57" title="Allocates memory with the specified alignment constraint.">AlignedAllocate()</a>. </p>
<p>This function wraps <code>free()</code> or <code>_aligned_free()</code>. </p>
</div>
</div>
<a id="a52a7dee343e392e5bf1794e8136df7f9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a52a7dee343e392e5bf1794e8136df7f9">&#9670;&nbsp;</a></span>AppendCommandLineArgument()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void crashpad::AppendCommandLineArgument </td>
<td>(</td>
<td class="paramtype">const std::wstring &amp;&#160;</td>
<td class="paramname"><em>argument</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::wstring *&#160;</td>
<td class="paramname"><em>command_line</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Utility function for building escaped command lines. </p>
<p>This builds a command line so that individual arguments can be reliably decoded by <code>CommandLineToArgvW()</code>.</p>
<p><em>argument</em> is appended to <em>command_line</em>. If necessary, it will be placed in quotation marks and escaped properly. If <em>command_line</em> is initially non-empty, a space will precede <em>argument</em>.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">argument</td><td>The argument to append to <em>command_line</em>. </td></tr>
<tr><td class="paramdir">[in,out]</td><td class="paramname">command_line</td><td>The command line being constructed. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="aeb040202b4562c8c4087b9c9db2ce430"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aeb040202b4562c8c4087b9c9db2ce430">&#9670;&nbsp;</a></span>AssignIfInRange()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Destination , typename Source &gt; </div>
<table class="memname">
<tr>
<td class="memname">bool crashpad::AssignIfInRange </td>
<td>(</td>
<td class="paramtype">Destination *&#160;</td>
<td class="paramname"><em>destination</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">Source&#160;</td>
<td class="paramname"><em>source</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Performs an assignment if it can be done safely, and signals if it cannot be done safely. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[out]</td><td class="paramname">destination</td><td>A pointer to the variable to be assigned to. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">source</td><td>The value to assign.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><code>true</code> if <em>source</em> is in the range supported by the type of <em>*destination</em>, with the assignment to <em>*destination</em> having been performed. <code>false</code> if the assignment cannot be completed safely because <em>source</em> is outside of this range. </dd></dl>
</div>
</div>
<a id="ae75f7444f96fb16bffd89e227159407f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae75f7444f96fb16bffd89e227159407f">&#9670;&nbsp;</a></span>AsUnderlyingType()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename From &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">constexpr std::underlying_type&lt;From&gt;::type crashpad::AsUnderlyingType </td>
<td>(</td>
<td class="paramtype">From&#160;</td>
<td class="paramname"><em>from</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">constexpr</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Casts a value to its underlying type. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">from</td><td>The value to be casted. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><em>from</em> casted to its underlying type. </dd></dl>
</div>
</div>
<a id="a2c18eae8148ec3304733581a28c2da3b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2c18eae8148ec3304733581a28c2da3b">&#9670;&nbsp;</a></span>AuditPIDFromMachMessageTrailer()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">pid_t crashpad::AuditPIDFromMachMessageTrailer </td>
<td>(</td>
<td class="paramtype">const mach_msg_trailer_t *&#160;</td>
<td class="paramname"><em>trailer</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the process ID of a Mach message’s sender from its audit trailer. </p>
<p>For the audit trailer to be present, the message must have been received with <a class="el" href="namespacecrashpad.html#a2c87c3ca622c253c84e9b557a0abe034" title="A Mach message option specifying that an audit trailer should be delivered during a receive operation...">kMachMessageReceiveAuditTrailer</a> or its macro equivalent specified in the receive options.</p>
<p>If the kernel is the message’s sender, a process ID of <code>0</code> will be returned.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">trailer</td><td>The trailer received with a Mach message.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The process ID of the message’s sender, or <code>-1</code> on failure with a message logged. It is considered a failure for <em>trailer</em> to not contain audit information. </dd></dl>
</div>
</div>
<a id="af63980b36cac449785c26cee00c89205"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af63980b36cac449785c26cee00c89205">&#9670;&nbsp;</a></span>BootstrapCheckIn()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">base::mac::ScopedMachReceiveRight crashpad::BootstrapCheckIn </td>
<td>(</td>
<td class="paramtype">const std::string &amp;&#160;</td>
<td class="paramname"><em>service_name</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Makes a <code>boostrap_check_in()</code> call to the process’ bootstrap server. </p>
<p>This function is provided to make it easier to call <code>bootstrap_check_in()</code> while avoiding accidental leaks of the returned receive right.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">service_name</td><td>The service name to check in.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>On success, a receive right to the service port. On failure, <code>MACH_PORT_NULL</code> with a message logged. </dd></dl>
</div>
</div>
<a id="a32e6cb4455e49ede76dab41a256962ee"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a32e6cb4455e49ede76dab41a256962ee">&#9670;&nbsp;</a></span>BootstrapLookUp()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">base::mac::ScopedMachSendRight crashpad::BootstrapLookUp </td>
<td>(</td>
<td class="paramtype">const std::string &amp;&#160;</td>
<td class="paramname"><em>service_name</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Makes a <code>boostrap_look_up()</code> call to the process’ bootstrap server. </p>
<p>This function is provided to make it easier to call <code>bootstrap_look_up()</code> while avoiding accidental leaks of the returned send right.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">service_name</td><td>The service name to look up.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>On success, a send right to the service port. On failure, <code>MACH_PORT_NULL</code> with a message logged. </dd></dl>
</div>
</div>
<a id="a63faa5e791871a34f458e2e3995389df"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a63faa5e791871a34f458e2e3995389df">&#9670;&nbsp;</a></span>BreakpadHTTPFormParametersFromMinidump()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::map&lt; std::string, std::string &gt; crashpad::BreakpadHTTPFormParametersFromMinidump </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classcrashpad_1_1ProcessSnapshot.html">ProcessSnapshot</a> *&#160;</td>
<td class="paramname"><em>process_snapshot</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Given a <a class="el" href="classcrashpad_1_1ProcessSnapshot.html" title="An abstract interface to a snapshot representing the state of a process.">ProcessSnapshot</a>, returns a map of key-value pairs to use as HTTP form parameters for upload to a Breakpad crash report colleciton server. </p>
<p>The map is built by combining the process simple annotations map with each module’s simple annotations map and annotation objects.</p>
<p>In the case of duplicate simple map keys or annotation names, the map will retain the first value found for any key, and will log a warning about discarded values. The precedence rules for annotation names are: the two reserved keys discussed below, process simple annotations, module simple annotations, and module annotation objects.</p>
<p>For annotation objects, only ones of that are <a class="el" href="classcrashpad_1_1Annotation.html#a734ee64cd20afdb78acb8656ed867d34a302e56d566a2561033b27c13680ea4b2" title="A NUL-terminated C-string.">Annotation::Type::kString</a> are included.</p>
<p>Each module’s annotations vector is also examined and built into a single string value, with distinct elements separated by newlines, and stored at the key named “list_annotations”, which supersedes any other key found by that name.</p>
<p>The client ID stored in the minidump is converted to a string and stored at the key named “guid”, which supersedes any other key found by that name.</p>
<p>In the event of an error reading the minidump file, a message will be logged.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">process_snapshot</td><td>The process snapshot from which annotations will be extracted.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A string map of the annotations. </dd></dl>
</div>
</div>
<a id="a14215b40c92752a4e9d28f8aa4c28c29"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a14215b40c92752a4e9d28f8aa4c28c29">&#9670;&nbsp;</a></span>BuildHandlerArgvStrings()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::vector&lt; std::string &gt; crashpad::BuildHandlerArgvStrings </td>
<td>(</td>
<td class="paramtype">const base::FilePath &amp;&#160;</td>
<td class="paramname"><em>handler</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const base::FilePath &amp;&#160;</td>
<td class="paramname"><em>database</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const base::FilePath &amp;&#160;</td>
<td class="paramname"><em>metrics_dir</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::string &amp;&#160;</td>
<td class="paramname"><em>url</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::map&lt; std::string, std::string &gt; &amp;&#160;</td>
<td class="paramname"><em>annotations</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::vector&lt; std::string &gt; &amp;&#160;</td>
<td class="paramname"><em>arguments</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Builds a vector of arguments suitable for invoking a handler process based on arguments passed to StartHandler-type(). </p>
<p>See StartHandlerAtCrash() for documentation on the input arguments.</p>
<dl class="section return"><dt>Returns</dt><dd>A vector of arguments suitable for starting the handler with. </dd></dl>
</div>
</div>
<a id="a58169a74e32daa2888614fcd2f2381ce"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a58169a74e32daa2888614fcd2f2381ce">&#9670;&nbsp;</a></span>BuildMinidumpThreadIDMap()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void crashpad::BuildMinidumpThreadIDMap </td>
<td>(</td>
<td class="paramtype">const std::vector&lt; const <a class="el" href="classcrashpad_1_1ThreadSnapshot.html">ThreadSnapshot</a> * &gt; &amp;&#160;</td>
<td class="paramname"><em>thread_snapshots</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacecrashpad.html#ae426d8c91f5448aaf543f91478d831da">MinidumpThreadIDMap</a> *&#160;</td>
<td class="paramname"><em>thread_id_map</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Builds a MinidumpThreadIDMap for a group of <a class="el" href="classcrashpad_1_1ThreadSnapshot.html" title="An abstract interface to a snapshot representing a thread (lightweight process) present in a snapshot...">ThreadSnapshot</a> objects. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">thread_snapshots</td><td>The thread snapshots to use as source data. </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">thread_id_map</td><td>A MinidumpThreadIDMap to be built by this method. This map must be empty when this function is called.</td></tr>
</table>
</dd>
</dl>
<p>The map ensures that for any unique 64-bit thread ID found in a <a class="el" href="classcrashpad_1_1ThreadSnapshot.html" title="An abstract interface to a snapshot representing a thread (lightweight process) present in a snapshot...">ThreadSnapshot</a>, the 32-bit thread ID used in a minidump file will also be unique. </p>
</div>
</div>
<a id="ab42fe62040bb628fb134573bb2131955"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab42fe62040bb628fb134573bb2131955">&#9670;&nbsp;</a></span>c16lcpy()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">size_t crashpad::c16lcpy </td>
<td>(</td>
<td class="paramtype">base::char16 *&#160;</td>
<td class="paramname"><em>destination</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const base::char16 *&#160;</td>
<td class="paramname"><em>source</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>length</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Copy a <code>NUL</code>-terminated char16-based string to a fixed-size buffer. </p>
<p>This function behaves identically to <code>strlcpy()</code>, but it operates on char16 data instead of <code>char</code> data. It copies the <code>NUL</code>-terminated string in the buffer beginning at <em>source</em> to the buffer of size <em>length</em> at <em>destination</em>, ensuring that the destination buffer is <code>NUL</code>-terminated. No data will be written outside of the <em>destination</em> buffer, but if <em>length</em> is smaller than the length of the string at <em>source</em>, the string will be truncated.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[out]</td><td class="paramname">destination</td><td>A pointer to a buffer of at least size <em>length</em> char16 units (not bytes). The string will be copied to this buffer, possibly with truncation, and <code>NUL</code>-terminated. Nothing will be written following the <code>NUL</code> terminator. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">source</td><td>A pointer to a <code>NUL</code>-terminated string of char16 data. The <code>NUL</code> terminator must be a <code>NUL</code> value in a char16 unit, not just a single <code>NUL</code> byte. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">length</td><td>The length of the <em>destination</em> buffer in char16 units, not bytes. A maximum of <em><code>length</em> - 1</code> char16 units from <em>source</em> will be copied to <em>destination</em>.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The length of the <em>source</em> string in char16 units, not including its <code>NUL</code> terminator. When truncation occurs, the return value will be equal to or greater than than the <em>length</em> parameter. </dd></dl>
</div>
</div>
<a id="ac25486c6b4c38fc7c7868e978094edcf"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac25486c6b4c38fc7c7868e978094edcf">&#9670;&nbsp;</a></span>CaptureContext()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void crashpad::CaptureContext </td>
<td>(</td>
<td class="paramtype">NativeCPUContext *&#160;</td>
<td class="paramname"><em>cpu_context</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Saves the CPU context. </p>
<p>The CPU context will be captured as accurately and completely as possible, containing an atomic snapshot at the point of this function’s return. This function does not modify any registers.</p>
<p>This function is a replacement for <code>RtlCaptureContext()</code> and <code>getcontext()</code> which contain bugs and/or limitations.</p>
<p>On 32-bit x86, <code>RtlCaptureContext()</code> requires that <code>ebp</code> be used as a frame pointer, and returns <code>ebp</code>, <code>esp</code>, and <code>eip</code> out of sync with the other registers. Both the 32-bit x86 and 64-bit x86_64 versions of <code>RtlCaptureContext()</code> capture only the state of the integer registers, ignoring floating-point and vector state.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[out]</td><td class="paramname">cpu_context</td><td>The structure to store the context in.</td></tr>
</table>
</dd>
</dl>
<dl class="section note"><dt>Note</dt><dd>The ABI may require that this function's argument is passed by register, preventing this fuction from saving the original value of that register. This occurs in the following circumstances:</dd></dl>
<table class="markdownTable">
<tr class="markdownTableHead">
<th class="markdownTableHeadNone">OS </th><th class="markdownTableHeadNone">Architecture </th><th class="markdownTableHeadNone">Register </th></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone">Win </td><td class="markdownTableBodyNone">x86_64 </td><td class="markdownTableBodyNone"><code>%rcx</code> </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone">macOS/Linux/Fuchsia </td><td class="markdownTableBodyNone">x86_64 </td><td class="markdownTableBodyNone"><code>%rdi</code> </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone">Linux </td><td class="markdownTableBodyNone">ARM/ARM64 </td><td class="markdownTableBodyNone"><code>r0</code>/<code>x0</code> </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone">Linux </td><td class="markdownTableBodyNone">MIPS/MIPS64 </td><td class="markdownTableBodyNone"><code>$a0</code> </td></tr>
</table>
<p>Additionally, the value <code>LR</code> on ARM/ARM64 will be the return address of this function.</p>
<p>If the value of these register prior to calling this function are needed they must be obtained separately prior to calling this function. For example: </p><div class="fragment"><div class="line">uint64_t rdi;</div>
<div class="line"><span class="keyword">asm</span>(<span class="stringliteral">&quot;movq %%rdi, %0&quot;</span> : <span class="stringliteral">&quot;=m&quot;</span>(rdi));</div>
</div><!-- fragment -->
</div>
</div>
<a id="acd8819955d3c396805f044bff1ecf595"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acd8819955d3c396805f044bff1ecf595">&#9670;&nbsp;</a></span>CaptureSnapshot()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool crashpad::CaptureSnapshot </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classcrashpad_1_1PtraceConnection.html">PtraceConnection</a> *&#160;</td>
<td class="paramname"><em>connection</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">const std::map&lt; std::string, std::string &gt; &amp;&#160;</td>
<td class="paramname"><em>process_annotations</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"><a class="el" href="namespacecrashpad.html#af2d003bfc8632755c60ab27bd6d1c8ae">VMAddress</a>&#160;</td>
<td class="paramname"><em>requesting_thread_stack_address</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">pid_t *&#160;</td>
<td class="paramname"><em>requesting_thread_id</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::unique_ptr&lt; <a class="el" href="classcrashpad_1_1ProcessSnapshotLinux.html">ProcessSnapshotLinux</a> &gt; *&#160;</td>
<td class="paramname"><em>process_snapshot</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::unique_ptr&lt; <a class="el" href="classcrashpad_1_1ProcessSnapshotSanitized.html">ProcessSnapshotSanitized</a> &gt; *&#160;</td>
<td class="paramname"><em>sanitized_snapshot</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Captures a snapshot of a client over <em>connection</em>. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">connection</td><td>A <a class="el" href="classcrashpad_1_1PtraceConnection.html" title="Provides an interface for making ptrace requests against a process and its threads.">PtraceConnection</a> to the client to snapshot. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">info</td><td>Information about the client configuring the snapshot. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">process_annotations</td><td>A map of annotations to insert as process-level annotations into the snapshot. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">client_uid</td><td>The client's user ID. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">requesting_thread_stack_address</td><td>An address on the stack of the thread requesting the snapshot. If <em>info</em> includes an exception address, the exception will be assigned to the thread whose stack address range contains this address. If 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 corresponding to <em>requesting_thread_stack_address</em>. Set to -1 if the thread ID could not be determined. Optional. </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">process_snapshot</td><td>A snapshot of the client process, valid if this function returns <code>true</code>. </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">sanitized_snapshot</td><td>A sanitized snapshot of the client process, valid if this function returns <code>true</code> and sanitization was requested in <em>info</em>. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><code>true</code> if <em>process_snapshot</em> was successfully created. A message will be logged on failure, but not if the snapshot was skipped because handling was disabled by <a class="el" href="structcrashpad_1_1CrashpadInfoClientOptions.html" title="Options represented in a client’s CrashpadInfo structure.">CrashpadInfoClientOptions</a>. </dd></dl>
</div>
</div>
<a id="a616ed0784021ecbd2f0f14b7e75c068c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a616ed0784021ecbd2f0f14b7e75c068c">&#9670;&nbsp;</a></span>CFPropertyToLaunchData()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">launch_data_t crashpad::CFPropertyToLaunchData </td>
<td>(</td>
<td class="paramtype">CFPropertyListRef&#160;</td>
<td class="paramname"><em>property_cf</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Converts a Core Foundation-type property list to a launchd-type <code>launch_data_t</code>. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">property_cf</td><td>The Core Foundation-type property list to convert.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The converted launchd-type <code>launch_data_t</code>. The caller takes ownership of the returned value. On error, returns <code>nullptr</code>.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>This function handles all <code>CFPropertyListRef</code> types except for <code>CFDateRef</code>, because there’s no <code>launch_data_type_t</code> analogue. Not all types supported in a launchd-type <code>launch_data_t</code> have <code>CFPropertyListRef</code> analogues. </dd></dl>
</div>
</div>
<a id="ac7cb2e4837a6fda169cbe92d1603460f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac7cb2e4837a6fda169cbe92d1603460f">&#9670;&nbsp;</a></span>CheckedCloseFile()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void crashpad::CheckedCloseFile </td>
<td>(</td>
<td class="paramtype"><a class="el" href="namespacecrashpad.html#a07f8e33c4fdeba3783277f9f2563e48a">FileHandle</a>&#160;</td>
<td class="paramname"><em>file</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Wraps <code>close()</code> or <code>CloseHandle()</code>, ensuring that it succeeds. </p>
<p>If the underlying function fails, this function causes execution to terminate without returning. </p>
</div>
</div>
<a id="ac8e7e1b1a4b89b489964ffee54d0d9df"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac8e7e1b1a4b89b489964ffee54d0d9df">&#9670;&nbsp;</a></span>CheckedReadFileAtEOF()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void crashpad::CheckedReadFileAtEOF </td>
<td>(</td>
<td class="paramtype"><a class="el" href="namespacecrashpad.html#a07f8e33c4fdeba3783277f9f2563e48a">FileHandle</a>&#160;</td>
<td class="paramname"><em>file</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Wraps <a class="el" href="namespacecrashpad.html#a8599600814a17d622766decd5f122a96" title="Reads from a file, retrying when interrupted before reading any data on POSIX.">ReadFile()</a>, ensuring that it indicates end-of-file. </p>
<p>Attempts to read a single byte from <em>file</em>, expecting no data to be read. If the underlying <a class="el" href="namespacecrashpad.html#a8599600814a17d622766decd5f122a96" title="Reads from a file, retrying when interrupted before reading any data on POSIX.">ReadFile()</a> fails, or if a byte actually is read, this function causes execution to terminate without returning.</p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="namespacecrashpad.html#a00e03e19185b0fde6301be6b113628cb" title="Wraps ReadFile(), ensuring that exactly size bytes are read.">CheckedReadFileExactly</a> </dd>
<dd>
<a class="el" href="namespacecrashpad.html#a8599600814a17d622766decd5f122a96" title="Reads from a file, retrying when interrupted before reading any data on POSIX.">ReadFile</a> </dd></dl>
</div>
</div>
<a id="a00e03e19185b0fde6301be6b113628cb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a00e03e19185b0fde6301be6b113628cb">&#9670;&nbsp;</a></span>CheckedReadFileExactly()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void crashpad::CheckedReadFileExactly </td>
<td>(</td>
<td class="paramtype"><a class="el" href="namespacecrashpad.html#a07f8e33c4fdeba3783277f9f2563e48a">FileHandle</a>&#160;</td>
<td class="paramname"><em>file</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>buffer</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>size</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Wraps <a class="el" href="namespacecrashpad.html#a8599600814a17d622766decd5f122a96" title="Reads from a file, retrying when interrupted before reading any data on POSIX.">ReadFile()</a>, ensuring that exactly <em>size</em> bytes are read. </p>
<p>If the underlying <a class="el" href="namespacecrashpad.html#a8599600814a17d622766decd5f122a96" title="Reads from a file, retrying when interrupted before reading any data on POSIX.">ReadFile()</a> fails, or if fewer than <em>size</em> bytes were read, this function causes execution to terminate without returning.</p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="namespacecrashpad.html#a74c74fefa3b1f5e0c1b885755c9f9cf6" title="Wraps WriteFile(), ensuring that exactly size bytes are written.">CheckedWriteFile</a> </dd>
<dd>
<a class="el" href="namespacecrashpad.html#a8599600814a17d622766decd5f122a96" title="Reads from a file, retrying when interrupted before reading any data on POSIX.">ReadFile</a> </dd>
<dd>
<a class="el" href="namespacecrashpad.html#ac3fb8955565f605e08c1e30562fbdb7a" title="Wraps ReadFile(), retrying following a short read, ensuring that exactly size bytes are read.">LoggingReadFileExactly</a> </dd>
<dd>
<a class="el" href="namespacecrashpad.html#ac8e7e1b1a4b89b489964ffee54d0d9df" title="Wraps ReadFile(), ensuring that it indicates end-of-file.">CheckedReadFileAtEOF</a> </dd></dl>
</div>
</div>
<a id="a74c74fefa3b1f5e0c1b885755c9f9cf6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a74c74fefa3b1f5e0c1b885755c9f9cf6">&#9670;&nbsp;</a></span>CheckedWriteFile()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void crashpad::CheckedWriteFile </td>
<td>(</td>
<td class="paramtype"><a class="el" href="namespacecrashpad.html#a07f8e33c4fdeba3783277f9f2563e48a">FileHandle</a>&#160;</td>
<td class="paramname"><em>file</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const void *&#160;</td>
<td class="paramname"><em>buffer</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>size</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Wraps <a class="el" href="namespacecrashpad.html#ada530c306bf30e9ed9274c20d05c0db4" title="Writes to a file, retrying when interrupted on POSIX or following a short write.">WriteFile()</a>, ensuring that exactly <em>size</em> bytes are written. </p>
<p>if the underlying <a class="el" href="namespacecrashpad.html#ada530c306bf30e9ed9274c20d05c0db4" title="Writes to a file, retrying when interrupted on POSIX or following a short write.">WriteFile()</a> fails, or if fewer than <em>size</em> bytes were written, this function causes execution to terminate without returning.</p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="namespacecrashpad.html#a00e03e19185b0fde6301be6b113628cb" title="Wraps ReadFile(), ensuring that exactly size bytes are read.">CheckedReadFileExactly</a> </dd>
<dd>
<a class="el" href="namespacecrashpad.html#ada530c306bf30e9ed9274c20d05c0db4" title="Writes to a file, retrying when interrupted on POSIX or following a short write.">WriteFile</a> </dd>
<dd>
<a class="el" href="namespacecrashpad.html#a8a91af9c690d2a280c463596bf82070b" title="Wraps WriteFile(), ensuring that exactly size bytes are written.">LoggingWriteFile</a> </dd></dl>
</div>
</div>
<a id="aa93af751a4a09c316fb3de1a90e03fe8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa93af751a4a09c316fb3de1a90e03fe8">&#9670;&nbsp;</a></span>ClockMonotonicNanoseconds()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint64_t crashpad::ClockMonotonicNanoseconds </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the value of the system’s monotonic clock. </p>
<p>The monotonic clock is a tick counter whose epoch is unspecified. It is a monotonically-increasing clock that cannot be set, and never jumps backwards on a running system. The monotonic clock may stop while the system is sleeping, and it may be reset when the system starts up. This clock is suitable for computing durations of events. Subject to the underlying clock’s resolution, successive calls to this function will result in a series of increasing values.</p>
<dl class="section return"><dt>Returns</dt><dd>The value of the system’s monotonic clock, in nanoseconds. </dd></dl>
</div>
</div>
<a id="a003f563ef0fe26081b4520012e0c1ef8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a003f563ef0fe26081b4520012e0c1ef8">&#9670;&nbsp;</a></span>CloseMultipleNowOrOnExec()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void crashpad::CloseMultipleNowOrOnExec </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>fd</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>preserve_fd</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Close multiple file descriptors or mark them close-on-exec. </p>
<p>This is similar to the BSD/Solaris-style <code>closefrom()</code> routine, which closes all open file descriptors equal to or higher than its <em>fd</em> argument. This function must not be called while other threads are active. It is intended to be used in a child process created by <code>fork()</code>, prior to calling an <code>exec()</code>-family function. This guarantees that a (possibly untrustworthy) child process does not inherit file descriptors that it has no need for.</p>
<p>Unlike the BSD function, this function may not close file descriptors immediately, but may instead mark them as close-on-exec. The actual behavior chosen is specific to the operating system. On macOS, file descriptors are marked close-on-exec instead of being closed outright in order to avoid raising <code>EXC_GUARD</code> exceptions for guarded file descriptors that are protected against <code>close()</code>.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">fd</td><td>The lowest file descriptor to close or set as close-on-exec. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">preserve_fd</td><td>A file descriptor to preserve and not close (or set as close-on-exec), even if it is open and its value is greater than <em>fd</em>. To not preserve any file descriptor, pass <code>-1</code> for this parameter. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="aa8a3145ce95463d1638428b2547cde4d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa8a3145ce95463d1638428b2547cde4d">&#9670;&nbsp;</a></span>CloseStdinAndStdout()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void crashpad::CloseStdinAndStdout </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Closes <code>stdin</code> and <code>stdout</code> by opening <code>/dev/null</code> over them. </p>
<p>It is normally inadvisable to <code>close()</code> the three standard input/output streams, because they occupy special file descriptors. Closing them outright could result in their file descriptors being reused. This causes problems for library code (including the standard library) that expects these file descriptors to have special meaning.</p>
<p>This function discards the standard input and standard output streams by opening <code>/dev/null</code> and assigning it to their file descriptors, closing whatever had been at those file descriptors previously.</p>
<p><code>stderr</code>, the standard error stream, is not closed. It is often useful to retain the ability to send diagnostic messages to the standard error stream.</p>
<dl class="section note"><dt>Note</dt><dd>This function can only maintain its guarantees in a single-threaded process, or in situations where the caller has control of all threads in the process. </dd></dl>
</div>
</div>
<a id="ae89adfd6e277a5762f2e9b30e1af289e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae89adfd6e277a5762f2e9b30e1af289e">&#9670;&nbsp;</a></span>CrackURL()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool crashpad::CrackURL </td>
<td>(</td>
<td class="paramtype">const std::string &amp;&#160;</td>
<td class="paramname"><em>url</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::string *&#160;</td>
<td class="paramname"><em>scheme</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::string *&#160;</td>
<td class="paramname"><em>host</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::string *&#160;</td>
<td class="paramname"><em>port</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::string *&#160;</td>
<td class="paramname"><em>rest</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Crack a URL into component parts. </p>
<p>This is not a general function, and works only on the limited style of URLs that are expected to be used by <a class="el" href="classcrashpad_1_1HTTPTransport.html#a505d8f15710b1490f78d952cf84256f1" title="Sets URL to which the request will be made.">HTTPTransport::SetURL()</a>.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">url</td><td>The URL to crack. </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">scheme</td><td>The request scheme, either http or https. </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">host</td><td>The hostname. </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">port</td><td>The port. </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">rest</td><td>The remainder of the URL (both resource and URL params). </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><code>true</code> on success in which case all output parameters will be filled out, or <code>false</code> on failure, in which case the output parameters will be unmodified and an error will be logged. </dd></dl>
</div>
</div>
<a id="a1bb7596acd0c7d75d0608ffafc6028e8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1bb7596acd0c7d75d0608ffafc6028e8">&#9670;&nbsp;</a></span>CreateNamedPipeInstance()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">HANDLE crashpad::CreateNamedPipeInstance </td>
<td>(</td>
<td class="paramtype">const std::wstring &amp;&#160;</td>
<td class="paramname"><em>pipe_name</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>first_instance</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Wraps CreateNamedPipe() to create a single named pipe instance. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">pipe_name</td><td>The name to use for the pipe. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">first_instance</td><td>If <code>true</code>, the named pipe instance will be created with <code>FILE_FLAG_FIRST_PIPE_INSTANCE</code>. This ensures that the the pipe name is not already in use when created. The first instance will be created with an untrusted integrity SACL so instances of this pipe can be connected to by processes of any integrity level. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a8f17bed131c46938ca08241eebd5b520"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8f17bed131c46938ca08241eebd5b520">&#9670;&nbsp;</a></span>DetermineMergedRange()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool crashpad::DetermineMergedRange </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classcrashpad_1_1MemorySnapshot.html">MemorySnapshot</a> *&#160;</td>
<td class="paramname"><em>a</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classcrashpad_1_1MemorySnapshot.html">MemorySnapshot</a> *&#160;</td>
<td class="paramname"><em>b</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classcrashpad_1_1CheckedRange.html">CheckedRange</a>&lt; uint64_t, size_t &gt; *&#160;</td>
<td class="paramname"><em>merged</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>The same as LoggingDetermineMergedRange but with no errors logged. </p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="namespacecrashpad.html#acb7b5be59c1293af50753130136aeb32" title="Given two memory snapshots, checks if they&#39;re overlapping or abutting, and if so, returns the result ...">LoggingDetermineMergedRange</a> </dd></dl>
</div>
</div>
<a id="a6cabe8d54d1b428a28e5706dce256f43"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6cabe8d54d1b428a28e5706dce256f43">&#9670;&nbsp;</a></span>DoubleForkAndExec()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool crashpad::DoubleForkAndExec </td>
<td>(</td>
<td class="paramtype">const std::vector&lt; std::string &gt; &amp;&#160;</td>
<td class="paramname"><em>argv</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::vector&lt; std::string &gt; *&#160;</td>
<td class="paramname"><em>envp</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>preserve_fd</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>use_path</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void(*)()&#160;</td>
<td class="paramname"><em>child_function</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Executes a (grand-)child process. </p>
<p>The grandchild process will be started through the double-<code>fork()</code>-and-<code>execv()</code> pattern. This allows the grandchild to fully disassociate from the parent. The grandchild will not be a member of the parent’s process group or session and will not have a controlling terminal, providing isolation from signals not intended for it. The grandchild’s parent process, in terms of the process tree hierarchy, will be the process with process ID 1, relieving any other process of the responsibility to reap it via <code>waitpid()</code>. Aside from the three file descriptors associated with the standard input/output streams and any file descriptor passed in <em>preserve_fd</em>, the grandchild will not inherit any file descriptors from the parent process.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">argv</td><td>The argument vector to start the grandchild process with. <code>argv[0]</code> is used as the path to the executable. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">envp</td><td>A vector of environment variables of the form <code>var=value</code> to be passed to <code>execve()</code>. If this value is <code>nullptr</code>, the current environment is used. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">preserve_fd</td><td>A file descriptor to be inherited by the grandchild process. This file descriptor is inherited in addition to the three file descriptors associated with the standard input/output streams. Use <code>-1</code> if no additional file descriptors are to be inherited. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">use_path</td><td>Whether to consult the <code>PATH</code> environment variable when requested to start an executable at a non-absolute path. If <code>false</code>, <code>execv()</code>, which does not consult <code>PATH</code>, will be used. If <code>true</code>, <code>execvp()</code>, which does consult <code>PATH</code>, will be used. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">child_function</td><td>If not <code>nullptr</code>, this function will be called in the intermediate child process, prior to the second <code>fork()</code>. Take note that this function will run in the context of a forked process, and must be safe for that purpose.</td></tr>
</table>
</dd>
</dl>
<p>Setting both <em>envp</em> to a value other than <code>nullptr</code> and <em>use_path</em> to <code>true</code> is not currently supported.</p>
<dl class="section return"><dt>Returns</dt><dd><code>true</code> on success, and <code>false</code> on failure with a message logged. Only failures that occur in the parent process that indicate a definite failure to start the the grandchild are reported in the return value. Failures in the intermediate child or grandchild processes cannot be reported in the return value, and are addressed by logging a message and terminating. The caller assumes the responsibility for detecting such failures, for example, by observing a failure to perform a successful handshake with the grandchild process. </dd></dl>
</div>
</div>
<a id="a5e5ee7c62768446ceb8fa8a76db99952"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5e5ee7c62768446ceb8fa8a76db99952">&#9670;&nbsp;</a></span>DropPrivileges()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void crashpad::DropPrivileges </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Permanently drops privileges conferred by being a setuid or setgid executable. </p>
<p>The effective user ID and saved set-user ID are set to the real user ID, negating any effects of being a setuid executable. The effective group ID and saved set-group ID are set to the real group ID, negating any effects of being a setgid executable. Because the saved set-user ID and saved set-group ID are reset, there is no way to restore the prior privileges, and the drop is permanent.</p>
<p>This function drops privileges correctly when running setuid root and in other circumstances, including when running setuid non-root. If the program is not a setuid or setgid executable, this function has no effect.</p>
<p>No changes are made to the supplementary group list, which is normally not altered for setuid or setgid executables. </p>
</div>
</div>
<a id="a83c8325c451170f4d3fb883014656af3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a83c8325c451170f4d3fb883014656af3">&#9670;&nbsp;</a></span>ExcCrashCouldContainException()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool crashpad::ExcCrashCouldContainException </td>
<td>(</td>
<td class="paramtype">exception_type_t&#160;</td>
<td class="paramname"><em>exception</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Determines whether a given exception type could plausibly be carried within an <code>EXC_CRASH</code> exception. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">exception</td><td>The exception type to test.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><code>true</code> if an <code>EXC_CRASH</code> exception could plausibly carry <em>exception</em>.</dd></dl>
<p>An <code>EXC_CRASH</code> exception can wrap exceptions that originate as hardware faults, as well as exceptions that originate from certain software sources such as POSIX signals. It cannot wrap another <code>EXC_CRASH</code> exception, nor can it wrap <code>EXC_RESOURCE</code>, <code>EXC_GUARD</code>, or <code>EXC_CORPSE_NOTIFY</code> exceptions. It also cannot wrap Crashpad-specific <a class="el" href="namespacecrashpad.html#a9e0a6740778f04fe2d190dbcd080d55b" title="An exception type to use for simulated exceptions.">kMachExceptionSimulated</a> exceptions. </p>
</div>
</div>
<a id="a830c754edaa401f7d866e69369f76ae1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a830c754edaa401f7d866e69369f76ae1">&#9670;&nbsp;</a></span>ExcCrashRecoverOriginalException()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">exception_type_t crashpad::ExcCrashRecoverOriginalException </td>
<td>(</td>
<td class="paramtype">mach_exception_code_t&#160;</td>
<td class="paramname"><em>code_0</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">mach_exception_code_t *&#160;</td>
<td class="paramname"><em>original_code_0</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int *&#160;</td>
<td class="paramname"><em>signal</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Recovers the original exception, first exception code, and signal from the encoded form of the first exception code delivered with <code>EXC_CRASH</code> exceptions. </p>
<p><code>EXC_CRASH</code> exceptions are generated when the kernel has committed to terminating a process as a result of a core-generating POSIX signal and, for hardware exceptions, an earlier Mach exception. Information about this earlier exception and signal is made available to the <code>EXC_CRASH</code> handler via its <code>code[0]</code> parameter. This function recovers the original exception, the value of <code>code[0]</code> from the original exception, and the value of the signal responsible for process termination.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">code_0</td><td>The first exception code (<code>code[0]</code>) passed to a Mach exception handler in an <code>EXC_CRASH</code> exception. It is invalid to call this function with an exception code from any exception other than <code>EXC_CRASH</code>. </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">original_code_0</td><td>The first exception code (<code>code[0]</code>) passed to the Mach exception handler for a hardware exception that resulted in the generation of a POSIX signal that caused process termination. If the signal that caused termination was not sent as a result of a hardware exception, this will be <code>0</code>. Callers that do not need this value may pass <code>nullptr</code>. </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">signal</td><td>The POSIX signal that caused process termination. Callers that do not need this value may pass <code>nullptr</code>.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The original exception for a hardware exception that resulted in the generation of a POSIX signal that caused process termination. If the signal that caused termination was not sent as a result of a hardware exception, this will be <code>0</code>. </dd></dl>
</div>
</div>
<a id="a2e26b5b9a8355ab15063b1c07fa6dff7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2e26b5b9a8355ab15063b1c07fa6dff7">&#9670;&nbsp;</a></span>ExceptionBehaviorBasic()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">exception_behavior_t crashpad::ExceptionBehaviorBasic </td>
<td>(</td>
<td class="paramtype">exception_behavior_t&#160;</td>
<td class="paramname"><em>behavior</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the basic behavior value of <em>behavior</em>, its value without <code>MACH_EXCEPTION_CODES</code> set. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">behavior</td><td>An exception behavior value.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><code>EXCEPTION_DEFAULT</code>, <code>EXCEPTION_STATE</code>, or <code>EXCEPTION_STATE_IDENTITY</code>, assuming <em>behavior</em> was a correct exception behavior value. </dd></dl>
</div>
</div>
<a id="a5d424769dc3683b809a9783f9319d4ab"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5d424769dc3683b809a9783f9319d4ab">&#9670;&nbsp;</a></span>ExceptionBehaviorHasIdentity()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool crashpad::ExceptionBehaviorHasIdentity </td>
<td>(</td>
<td class="paramtype">exception_behavior_t&#160;</td>
<td class="paramname"><em>behavior</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Determines whether <em>behavior</em> indicates an exception behavior that carries thread and task identities. </p>
<p>When this function returns <code>true</code>, an exception message of <em>behavior</em> will carry thread and task identities in the form of send rights to the thread and task ports. Its <em>thread</em> and <em>task</em> fields will be valid. When this function returns <code>false</code>, these fields will not be valid.</p>
<p>Exception behaviors that carry thread and task identity information are <code>EXCEPTION_DEFAULT</code> and <code>EXCEPTION_STATE_IDENTITY</code>. <code>MACH_EXCEPTION_CODES</code> may also be set. These behaviors correspond to <code>exception_raise()</code>, <code>exception_raise_state_identity()</code>, <code>mach_exception_raise()</code>, and <code>mach_exception_raise_state_identity()</code>.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">behavior</td><td>An exception behavior value.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><code>true</code> if <em>behavior</em> is <code>EXCEPTION_DEFAULT</code> or <code>EXCEPTION_STATE_IDENTITY</code>, possibly with <code>MACH_EXCEPTION_CODES</code> also set. </dd></dl>
</div>
</div>
<a id="a6cd35f65144317021b4ea09a2b779bfb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6cd35f65144317021b4ea09a2b779bfb">&#9670;&nbsp;</a></span>ExceptionBehaviorHasMachExceptionCodes()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool crashpad::ExceptionBehaviorHasMachExceptionCodes </td>
<td>(</td>
<td class="paramtype">exception_behavior_t&#160;</td>
<td class="paramname"><em>behavior</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Determines whether <em>behavior</em> indicates an exception behavior that carries 64-bit exception codes (“Mach exception codes”). </p>
<p>When this function returns <code>true</code>, an exception message of <em>behavior</em> will carry 64-bit exception codes of type <code>mach_exception_code_t</code> in its <em>code</em> field. When this function returns <code>false</code>, the exception message will carry 32-bit exception codes of type <code>exception_data_type_t</code> in its <em>code</em> field.</p>
<p>Exception behaviors that carry 64-bit exception codes are those that have <code>MACH_EXCEPTION_CODES</code> set. These behaviors correspond to <code>mach_exception_raise()</code>, <code>mach_exception_raise_state()</code>, and <code>mach_exception_raise_state_identity()</code>.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">behavior</td><td>An exception behavior value.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><code>true</code> if <code>MACH_EXCEPTION_CODES</code> is set in <em>behavior</em>. </dd></dl>
</div>
</div>
<a id="acea6434eb784ccde471620e9d79ba8c1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acea6434eb784ccde471620e9d79ba8c1">&#9670;&nbsp;</a></span>ExceptionBehaviorHasState()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool crashpad::ExceptionBehaviorHasState </td>
<td>(</td>
<td class="paramtype">exception_behavior_t&#160;</td>
<td class="paramname"><em>behavior</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Determines whether <em>behavior</em> indicates an exception behavior that carries thread state information. </p>
<p>When this function returns <code>true</code>, an exception message of <em>behavior</em> will carry thread state information. Its <em>flavor</em>, <em>old_state</em>, <em>old_state_count</em>, <em>new_state</em>, and <em>new_state_count</em> fields will be valid. When this function returns <code>false</code>, these fields will not be valid.</p>
<p>Exception behaviors that carry thread state information are <code>EXCEPTION_STATE</code> and <code>EXCEPTION_STATE_IDENTITY</code>. <code>MACH_EXCEPTION_CODES</code> may also be set. These behaviors correspond to <code>exception_raise_state()</code>, <code>exception_raise_state_identity()</code>, <code>mach_exception_raise_state()</code>, and <code>mach_exception_raise_state_identity()</code>.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">behavior</td><td>An exception behavior value.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><code>true</code> if <em>behavior</em> is <code>EXCEPTION_STATE</code> or <code>EXCEPTION_STATE_IDENTITY</code>, possibly with <code>MACH_EXCEPTION_CODES</code> also set. </dd></dl>
</div>
</div>
<a id="a53fd131112ba6eba0d81467733a7643a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a53fd131112ba6eba0d81467733a7643a">&#9670;&nbsp;</a></span>ExceptionBehaviorToString()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::string crashpad::ExceptionBehaviorToString </td>
<td>(</td>
<td class="paramtype">exception_behavior_t&#160;</td>
<td class="paramname"><em>behavior</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacecrashpad.html#a0f13feba965ef7750b3d49064936e5ee">SymbolicConstantToStringOptions</a>&#160;</td>
<td class="paramname"><em>options</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Converts a Mach exception behavior value to a textual representation. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">behavior</td><td>The Mach exception behavior value to convert. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">options</td><td>Options affecting the conversion. <a class="el" href="namespacecrashpad.html#a7856b82b71167792ea6103debb5105eda18aa149c3471a5129274df2af6972f04" title="Use | to combine values in a bitfield.">kUseOr</a> is ignored. <code>MACH_EXCEPTION_CODES</code> can always be ORed in, but no other values can be ORed with each other. For <a class="el" href="namespacecrashpad.html#a7856b82b71167792ea6103debb5105edaf9da07820c9857c86422b70c3cc33c12" title="If no symbolic name is known for a given constant, return a numeric string.">kUnknownIsNumeric</a>, the format is <code>"%#x"</code>.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The converted string. </dd></dl>
</div>
</div>
<a id="ac448d0b014125dc8edd9c617836eb44c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac448d0b014125dc8edd9c617836eb44c">&#9670;&nbsp;</a></span>ExceptionCodeForMetrics()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int32_t crashpad::ExceptionCodeForMetrics </td>
<td>(</td>
<td class="paramtype">exception_type_t&#160;</td>
<td class="paramname"><em>exception</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">mach_exception_code_t&#160;</td>
<td class="paramname"><em>code_0</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the exception code to report via a configured metrics system. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">exception</td><td>The exception type as received by a Mach exception handler. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">code_0</td><td>The first exception code (<code>code[0]</code>) as received by a Mach exception handler.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>An exception code that maps useful information from <em>exception</em> and <em>code_0</em> to the more limited data type available for metrics reporting.</dd></dl>
<p>For classic Mach exceptions (including hardware faults reported as Mach exceptions), the mapping is <code>(exception &lt;&lt; 16) | code_0</code>.</p>
<p>For <code>EXC_CRASH</code> exceptions that originate as Mach exceptions described above, the mapping above is used, with the original exception’s values. For <code>EXC_CRASH</code> exceptions that originate as POSIX signals without an underlying Mach exception, the mapping is <code>(EXC_CRASH &lt;&lt; 16) | code_0</code>.</p>
<p><code>EXC_RESOURCE</code> and <code>EXC_GUARD</code> exceptions both contain exception-specific “type” values and type-specific “flavor” values. In these cases, the mapping is <code>(exception &lt;&lt; 16) | (type &lt;&lt; 8) | flavor</code>. For <code>EXC_GUARD</code>, the “flavor” value is rewritten to be more space-efficient by replacing the kernel-supplied bitmask having exactly one bit set with the index of the set bit.</p>
<p><code>EXC_CORPSE_NOTIFY</code> exceptions are reported as classic Mach exceptions with the <em>code_0</em> field set to <code>0</code>.</p>
<p>If <em>exception</em> is <a class="el" href="namespacecrashpad.html#a9e0a6740778f04fe2d190dbcd080d55b" title="An exception type to use for simulated exceptions.">kMachExceptionSimulated</a>, that value is returned as-is.</p>
<p>Overflow conditions in any field are handled via saturation. </p>
</div>
</div>
<a id="a8ee31102507c0f75d82496dcd6f6b53b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8ee31102507c0f75d82496dcd6f6b53b">&#9670;&nbsp;</a></span>ExceptionMaskToString()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::string crashpad::ExceptionMaskToString </td>
<td>(</td>
<td class="paramtype">exception_mask_t&#160;</td>
<td class="paramname"><em>exception_mask</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacecrashpad.html#a0f13feba965ef7750b3d49064936e5ee">SymbolicConstantToStringOptions</a>&#160;</td>
<td class="paramname"><em>options</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Converts a Mach exception mask value to a textual representation. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">exception_mask</td><td>The Mach exception mask value to convert. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">options</td><td>Options affecting the conversion. <a class="el" href="namespacecrashpad.html#a7856b82b71167792ea6103debb5105eda18aa149c3471a5129274df2af6972f04" title="Use | to combine values in a bitfield.">kUseOr</a> is honored. For <a class="el" href="namespacecrashpad.html#a7856b82b71167792ea6103debb5105edaf9da07820c9857c86422b70c3cc33c12" title="If no symbolic name is known for a given constant, return a numeric string.">kUnknownIsNumeric</a>, the format is <code>"%#x"</code>.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The converted string. </dd></dl>
</div>
</div>
<a id="a05296bfd23550f42639067355410811e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a05296bfd23550f42639067355410811e">&#9670;&nbsp;</a></span>ExceptionToString()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::string crashpad::ExceptionToString </td>
<td>(</td>
<td class="paramtype">exception_type_t&#160;</td>
<td class="paramname"><em>exception</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacecrashpad.html#a0f13feba965ef7750b3d49064936e5ee">SymbolicConstantToStringOptions</a>&#160;</td>
<td class="paramname"><em>options</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Converts a Mach exception value to a textual representation. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">exception</td><td>The Mach exception value to convert. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">options</td><td>Options affecting the conversion. <a class="el" href="namespacecrashpad.html#a7856b82b71167792ea6103debb5105eda18aa149c3471a5129274df2af6972f04" title="Use | to combine values in a bitfield.">kUseOr</a> is ignored. For <a class="el" href="namespacecrashpad.html#a7856b82b71167792ea6103debb5105edaf9da07820c9857c86422b70c3cc33c12" title="If no symbolic name is known for a given constant, return a numeric string.">kUnknownIsNumeric</a>, the format is <code>"%d"</code>.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The converted string. </dd></dl>
</div>
</div>
<a id="a194e0575e09db56e4107e1c41b27c941"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a194e0575e09db56e4107e1c41b27c941">&#9670;&nbsp;</a></span>ExcMaskAll()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">exception_mask_t crashpad::ExcMaskAll </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>The value for <code>EXC_MASK_ALL</code> appropriate for the operating system at run time. </p>
<p>The SDK’s definition of <code>EXC_MASK_ALL</code> has changed over time, with later versions containing more bits set than earlier versions. However, older kernels will reject exception masks that contain bits set that they don’t recognize. Calling this function will return a value for <code>EXC_MASK_ALL</code> appropriate for the system at run time.</p>
<dl class="section note"><dt>Note</dt><dd><code>EXC_MASK_ALL</code> does not include the value of <code>EXC_MASK_CRASH</code> or <code>EXC_MASK_CORPSE_NOTIFY</code>. Consumers that want <code>EXC_MASK_ALL</code> along with <code>EXC_MASK_CRASH</code> may use <a class="el" href="namespacecrashpad.html#a194e0575e09db56e4107e1c41b27c941" title="The value for EXC_MASK_ALL appropriate for the operating system at run time.">ExcMaskAll()</a> <code>| EXC_MASK_CRASH</code>. Consumers may use <a class="el" href="namespacecrashpad.html#a18e47623f33e0c86fef1d08a82b28cc9" title="An exception mask containing every possible exception understood by the operating system at run time.">ExcMaskValid()</a> for <code>EXC_MASK_ALL</code> along with <code>EXC_MASK_CRASH</code>, <code>EXC_MASK_CORPSE_NOTIFY</code>, and any values that come into existence in the future. </dd></dl>
</div>
</div>
<a id="a18e47623f33e0c86fef1d08a82b28cc9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a18e47623f33e0c86fef1d08a82b28cc9">&#9670;&nbsp;</a></span>ExcMaskValid()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">exception_mask_t crashpad::ExcMaskValid </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>An exception mask containing every possible exception understood by the operating system at run time. </p>
<p><code>EXC_MASK_ALL</code>, and thus <a class="el" href="namespacecrashpad.html#a194e0575e09db56e4107e1c41b27c941" title="The value for EXC_MASK_ALL appropriate for the operating system at run time.">ExcMaskAll()</a>, never includes the value of <code>EXC_MASK_CRASH</code> or <code>EXC_MASK_CORPSE_NOTIFY</code>. For situations where an exception mask corresponding to every possible exception understood by the running kernel is desired, use this function instead.</p>
<p>Should new exception types be introduced in the future, this function will be updated to include their bits in the returned mask value when run time support is present. </p>
</div>
</div>
<a id="ac192440e1d208f5dd348f0cba652d93a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac192440e1d208f5dd348f0cba652d93a">&#9670;&nbsp;</a></span>ExcServerCopyState()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void crashpad::ExcServerCopyState </td>
<td>(</td>
<td class="paramtype">exception_behavior_t&#160;</td>
<td class="paramname"><em>behavior</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacecrashpad.html#a72fa9ea632f7f1ec93ec3c1b1d300db6">ConstThreadState</a>&#160;</td>
<td class="paramname"><em>old_state</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">mach_msg_type_number_t&#160;</td>
<td class="paramname"><em>old_state_count</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">thread_state_t&#160;</td>
<td class="paramname"><em>new_state</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">mach_msg_type_number_t *&#160;</td>
<td class="paramname"><em>new_state_count</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Copies the old state to the new state for state-carrying exceptions. </p>
<p>When the kernel sends a state-carrying exception request and the response is successful (<code>MACH_MSG_SUCCESS</code>, a synonym for <code>KERN_SUCCESS</code>), it will set a new thread state based on <em>new_state</em> and <em>new_state_count</em>. To ease initialization of the new state, this function copies <em>old_state</em> and <em>old_state_count</em>. This is only done if <em>behavior</em> indicates a state-carrying exception.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">behavior</td><td>The behavior of the exception handler as invoked. This may be taken directly from the <em>behavior</em> parameter of internal::SimplifiedExcServer::Interface::CatchException(), for example. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">old_state</td><td>The original state value. This may be taken directly from the <em>old_state</em> parameter of internal::SimplifiedExcServer::Interface::CatchException(), for example. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">old_state_count</td><td>The number of significant <code>natural_t</code> words in <em>old_state</em>. This may be taken directly from the <em>old_state_count</em> parameter of internal::SimplifiedExcServer::Interface::CatchException(), for example. </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">new_state</td><td>The state value to be set. This may be taken directly from the <em>new_state</em> parameter of internal::SimplifiedExcServer::Interface::CatchException(), for example. This parameter is untouched if <em>behavior</em> is not state-carrying. </td></tr>
<tr><td class="paramdir">[in,out]</td><td class="paramname">new_state_count</td><td>On entry, the number of <code>natural_t</code> words available to be written to in <em>new_state</em>. On return, the number of significant <code>natural_t</code> words in <em>new_state</em>. This may be taken directly from the <em>new_state_count</em> parameter of internal::SimplifiedExcServer::Interface::CatchException(), for example. This parameter is untouched if <em>behavior</em> is not state-carrying. If <em><em>behavior</em> is</em> state-carrying, this parameter should be at least as large as <em>old_state_count</em>. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a2112e7fcb6a2fc7f9b6b0ff8856e8466"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2112e7fcb6a2fc7f9b6b0ff8856e8466">&#9670;&nbsp;</a></span>ExcServerSuccessfulReturnValue()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">kern_return_t crashpad::ExcServerSuccessfulReturnValue </td>
<td>(</td>
<td class="paramtype">exception_type_t&#160;</td>
<td class="paramname"><em>exception</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">exception_behavior_t&#160;</td>
<td class="paramname"><em>behavior</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>set_thread_state</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Computes an approriate successful return value for an exception handler function. </p>
<p>For exception handlers that respond to state-carrying behaviors, when the handler is called by the kernel (as it is normally), the kernel will attempt to set a new thread state when the exception handler returns successfully. Other code that mimics the kernel’s exception-delivery semantics may implement the same or similar behavior. In some situations, it is undesirable to set a new thread state. If the exception handler were to return unsuccessfully, however, the kernel would continue searching for an exception handler at a wider (task or host) scope. This may also be undesirable.</p>
<p>If such exception handlers return <code>MACH_RCV_PORT_DIED</code>, the kernel will not set a new thread state and will also not search for another exception handler. See 10.9.4 <code>xnu-2422.110.17/osfmk/kern/exception.c</code>. <code>exception_deliver()</code> will only set a new thread state if the handler’s return code was <code>MACH_MSG_SUCCESS</code> (a synonym for <code>KERN_SUCCESS</code>), and subsequently, <code>exception_triage()</code> will not search for a new handler if the handler’s return code was <code>KERN_SUCCESS</code> or <code>MACH_RCV_PORT_DIED</code>.</p>
<p>This function allows exception handlers to compute an appropriate return code to influence their caller (the kernel) in the desired way with respect to setting a new thread state while suppressing the caller’s subsequent search for other exception handlers. An exception handler should return the value returned by this function.</p>
<p>This function is useful even for <code>EXC_CRASH</code> handlers, where returning <code>KERN_SUCCESS</code> and allowing the kernel to set a new thread state has been observed to cause a perceptible and unnecessary waste of time. The victim task in an <code>EXC_CRASH</code> handler is already being terminated and is no longer schedulable, so there is no point in setting the states of any of its threads.</p>
<p>On OS X 10.11, the <code>MACH_RCV_PORT_DIED</code> mechanism cannot be used with an <code>EXC_CRASH</code> handler without triggering an undesirable <code>EXC_CORPSE_NOTIFY</code> exception. In that case, <code>KERN_SUCCESS</code> is always returned. Because this function may return <code>KERN_SUCCESS</code> for a state-carrying exception, it is important to ensure that the state returned by a state-carrying exception handler is valid, because it will be passed to <code>thread_set_status()</code>. <a class="el" href="namespacecrashpad.html#ac192440e1d208f5dd348f0cba652d93a" title="Copies the old state to the new state for state-carrying exceptions.">ExcServerCopyState()</a> may be used to achieve this.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">exception</td><td>The exception type passed to the exception handler. This may be taken directly from the <em>exception</em> parameter of internal::SimplifiedExcServer::Interface::CatchException(), for example. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">behavior</td><td>The behavior of the exception handler as invoked. This may be taken directly from the <em>behavior</em> parameter of internal::SimplifiedExcServer::Interface::CatchException(), for example. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">set_thread_state</td><td><code>true</code> if the handler would like its caller to set the new thread state using the <em>flavor</em>, <em>new_state</em>, and <em>new_state_count</em> out parameters. This can only happen when <em>behavior</em> is a state-carrying behavior.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><code>KERN_SUCCESS</code> or <code>MACH_RCV_PORT_DIED</code>. <code>KERN_SUCCESS</code> is used when <em>behavior</em> is not a state-carrying behavior, or when it is a state-carrying behavior and <em>set_thread_state</em> is <code>true</code>, or for <code>EXC_CRASH</code> exceptions on OS X 10.11 and later. Otherwise, <code>MACH_RCV_PORT_DIED</code> is used. </dd></dl>
</div>
</div>
<a id="a229b9a82773f5497a0f0c74aae3b8b3a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a229b9a82773f5497a0f0c74aae3b8b3a">&#9670;&nbsp;</a></span>FileModificationTime()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool crashpad::FileModificationTime </td>
<td>(</td>
<td class="paramtype">const base::FilePath &amp;&#160;</td>
<td class="paramname"><em>path</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">timespec *&#160;</td>
<td class="paramname"><em>mtime</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Determines the modification time for a file, directory, or symbolic link, logging a message on failure. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">path</td><td>The file to get the modification time for. </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">mtime</td><td>The modification time as seconds since the POSIX Epoch. </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>
</div>
</div>
<a id="aa84c4880b695542867ee6ac872f0f98f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa84c4880b695542867ee6ac872f0f98f">&#9670;&nbsp;</a></span>FromPointerCast()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename To , typename From &gt; </div>
<table class="memname">
<tr>
<td class="memname">crashpad::FromPointerCast </td>
<td>(</td>
<td class="paramtype">From&#160;</td>
<td class="paramname"><em>from</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Casts from a pointer type to an integer. </p>
<p>Compared to <code>reinterpret_cast&lt;&gt;()</code>, <a class="el" href="namespacecrashpad.html#aa84c4880b695542867ee6ac872f0f98f" title="Casts from a pointer type to an integer.">FromPointerCast&lt;&gt;()</a> defines whether a pointer type is sign-extended or zero-extended. Casts to signed integral types are sign-extended. Casts to unsigned integral types are zero-extended.</p>
<p>Use <a class="el" href="namespacecrashpad.html#aa84c4880b695542867ee6ac872f0f98f" title="Casts from a pointer type to an integer.">FromPointerCast&lt;&gt;()</a> instead of <code>reinterpret_cast&lt;&gt;()</code> when casting a pointer to an integral type that may not be the same width as a pointer. There is no need to prefer <a class="el" href="namespacecrashpad.html#aa84c4880b695542867ee6ac872f0f98f" title="Casts from a pointer type to an integer.">FromPointerCast&lt;&gt;()</a> when casting to an integral type that’s definitely the same width as a pointer, such as <code>uintptr_t</code> and <code>intptr_t</code>. </p>
</div>
</div>
<a id="a546d3f9feba8be654adc0292f99e043a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a546d3f9feba8be654adc0292f99e043a">&#9670;&nbsp;</a></span>GetBootTime()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool crashpad::GetBootTime </td>
<td>(</td>
<td class="paramtype">timespec *&#160;</td>
<td class="paramname"><em>ts</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Get the kernel boot time. Subsequent calls to this function may return different results due to the system clock being changed or imprecision in measuring the boot time. </p>
<dl class="section return"><dt>Returns</dt><dd><code>true</code> on success. Otherwise, <code>false</code> with a message logged. </dd></dl>
</div>
</div>
<a id="a4f31c2f8b1cfea873b757dc486281437"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4f31c2f8b1cfea873b757dc486281437">&#9670;&nbsp;</a></span>GetChildKoids()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::vector&lt; zx_koid_t &gt; crashpad::GetChildKoids </td>
<td>(</td>
<td class="paramtype">const zx::object_base &amp;&#160;</td>
<td class="paramname"><em>parent</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">zx_object_info_topic_t&#160;</td>
<td class="paramname"><em>child_kind</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Get a list of child koids for a parent handle. </p>
<p>For example, the list of processes in jobs, or the list of threads in a process.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">parent</td><td>The handle to the parent object. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">child_kind</td><td>The type of children to retrieve from <em>parent</em>. Valid values depend on the type of <em>parent</em>, but include <code>ZX_INFO_JOB_CHILDREN</code> (child jobs of a job), <code>ZX_INFO_JOB_PROCESSES</code> (child processes of a job), and <code>ZX_INFO_PROCESS_THREADS</code> (child threads of a process). </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A vector of the koids representing the child objects.</dd></dl>
<dl class="section see"><dt>See also</dt><dd>GetChildHandles </dd></dl>
</div>
</div>
<a id="a8dec2ab03620dcacc0b0d60ae0845f3c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8dec2ab03620dcacc0b0d60ae0845f3c">&#9670;&nbsp;</a></span>GetFallbackSecurityDescriptorForNamedPipeInstance()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const void * crashpad::GetFallbackSecurityDescriptorForNamedPipeInstance </td>
<td>(</td>
<td class="paramtype">size_t *&#160;</td>
<td class="paramname"><em>size</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the <code>SECURITY_DESCRIPTOR</code> blob that will be used for creating the connection pipe in <a class="el" href="namespacecrashpad.html#a1bb7596acd0c7d75d0608ffafc6028e8" title="Wraps CreateNamedPipe() to create a single named pipe instance.">CreateNamedPipeInstance()</a> if the full descriptor can't be created. </p>
<p>This function is only exposed for testing.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[out]</td><td class="paramname">size</td><td>The size of the returned blob. May be <code>nullptr</code> if not required.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A pointer to a self-relative <code>SECURITY_DESCRIPTOR</code>. Ownership is not transferred to the caller. </dd></dl>
</div>
</div>
<a id="a24450f6cd81133935420337540b4d62b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a24450f6cd81133935420337540b4d62b">&#9670;&nbsp;</a></span>GetHandlesForThreadKoids()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::vector&lt; zx::thread &gt; crashpad::GetHandlesForThreadKoids </td>
<td>(</td>
<td class="paramtype">const zx::process &amp;&#160;</td>
<td class="paramname"><em>parent</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::vector&lt; zx_koid_t &gt; &amp;&#160;</td>
<td class="paramname"><em>koids</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Convert a list of koids that are all children of a particular process into thread handles. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">parent</td><td>The parent object to which the koids belong. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">koids</td><td>The list of koids. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The resulting list of handles corresponding to the koids. If an element of <em>koids</em> is invalid or can't be retrieved, there will be a corresponding <code>ZX_HANDLE_INVALID</code> entry in the return. </dd></dl>
</div>
</div>
<a id="aa78f92ab17c2ca6a7a86edc949ac1fde"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa78f92ab17c2ca6a7a86edc949ac1fde">&#9670;&nbsp;</a></span>GetKoidForHandle()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">zx_koid_t crashpad::GetKoidForHandle </td>
<td>(</td>
<td class="paramtype">const zx::object_base &amp;&#160;</td>
<td class="paramname"><em>object</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Retrieves the koid for a given object handle. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">object</td><td>The handle for which the koid is to be retrieved. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The koid of <em>handle</em>, or <code>ZX_HANDLE_INVALID</code> with an error logged. </dd></dl>
</div>
</div>
<a id="af5f4414be804bdcd71f57053d7147eff"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af5f4414be804bdcd71f57053d7147eff">&#9670;&nbsp;</a></span>GetModuleVersionAndType()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool crashpad::GetModuleVersionAndType </td>
<td>(</td>
<td class="paramtype">const base::FilePath &amp;&#160;</td>
<td class="paramname"><em>path</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structVS__FIXEDFILEINFO.html">VS_FIXEDFILEINFO</a> *&#160;</td>
<td class="paramname"><em>vs_fixedfileinfo</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Retrieve the type and version information from a given module (exe, dll, etc.) </p>
<p>This function calls <code>GetFileVersionInfo()</code>, which can implicitly call <code>LoadLibrary()</code> to load <em>path</em> into the calling process. Do not call this function on an untrusted module, because there is a risk of executing the module’s code.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">path</td><td>The path to the module to be inspected. </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">vs_fixedfileinfo</td><td>The <a class="el" href="structVS__FIXEDFILEINFO.html" title="Version information for a file.">VS_FIXEDFILEINFO</a> on success. <a class="el" href="structVS__FIXEDFILEINFO.html#a1ecf0351f90806354f987321c4d1ce0e" title="A bitmask of VS_FF_* values identifying attributes of the file. Only bits present in dwFileFlagsMask ...">VS_FIXEDFILEINFO::dwFileFlags</a> will have been masked with <a class="el" href="structVS__FIXEDFILEINFO.html#a1523cf64b0b010ecf5a8c3b02866041c" title="A bitmask of VS_FF_* values indicating which bits in dwFileFlags are valid.">VS_FIXEDFILEINFO::dwFileFlagsMask</a> already.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><code>true</code> on success, or <code>false</code> on failure with a message logged. If the module has no <code>VERSIONINFO</code> resource, <code>false</code> will be returned without any messages logged. </dd></dl>
</div>
</div>
<a id="a794c1a44de599deb3e261eab0bd6c03b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a794c1a44de599deb3e261eab0bd6c03b">&#9670;&nbsp;</a></span>GetReadableRangesOfMemoryMap()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::vector&lt; <a class="el" href="classcrashpad_1_1CheckedRange.html">CheckedRange</a>&lt; <a class="el" href="namespacecrashpad.html#a368af6d88f68998b5c5eb80b8f6ebb76">WinVMAddress</a>, <a class="el" href="namespacecrashpad.html#a1bac9f2a189b24737e743d6690362239">WinVMSize</a> &gt; &gt; crashpad::GetReadableRangesOfMemoryMap </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classcrashpad_1_1CheckedRange.html">CheckedRange</a>&lt; <a class="el" href="namespacecrashpad.html#a368af6d88f68998b5c5eb80b8f6ebb76">WinVMAddress</a>, <a class="el" href="namespacecrashpad.html#a1bac9f2a189b24737e743d6690362239">WinVMSize</a> &gt; &amp;&#160;</td>
<td class="paramname"><em>range</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classcrashpad_1_1ProcessInfo.html#a9b1bd70d4a58ec0afe0ce742f0e3fea8">ProcessInfo::MemoryBasicInformation64Vector</a> &amp;&#160;</td>
<td class="paramname"><em>memory_info</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Given a memory map of a process, and a range to be read from the target process, returns a vector of ranges, representing the readable portions of the original range. </p>
<p>This is a free function for testing, but prefer <a class="el" href="classcrashpad_1_1ProcessInfo.html#a96ddc54651cdea815f8f88a5ae00f0ab" title="Given a range to be read from the target process, returns a vector of ranges, representing the readab...">ProcessInfo::GetReadableRanges()</a>. </p>
</div>
</div>
<a id="af22242667ee950fe12a99b298dda5e08"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af22242667ee950fe12a99b298dda5e08">&#9670;&nbsp;</a></span>GetSecurityDescriptorForNamedPipeInstance()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const void * crashpad::GetSecurityDescriptorForNamedPipeInstance </td>
<td>(</td>
<td class="paramtype">size_t *&#160;</td>
<td class="paramname"><em>size</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the <code>SECURITY_DESCRIPTOR</code> blob that will be used for creating the connection pipe in <a class="el" href="namespacecrashpad.html#a1bb7596acd0c7d75d0608ffafc6028e8" title="Wraps CreateNamedPipe() to create a single named pipe instance.">CreateNamedPipeInstance()</a>. </p>
<p>This function is only exposed for testing.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[out]</td><td class="paramname">size</td><td>The size of the returned blob. May be <code>nullptr</code> if not required.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A pointer to a self-relative <code>SECURITY_DESCRIPTOR</code>. Ownership is not transferred to the caller. </dd></dl>
</div>
</div>
<a id="ae99a5273dd73373a439df42cc39a8da0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae99a5273dd73373a439df42cc39a8da0">&#9670;&nbsp;</a></span>GetThreadHandleByKoid()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">zx::thread crashpad::GetThreadHandleByKoid </td>
<td>(</td>
<td class="paramtype">const zx::process &amp;&#160;</td>
<td class="paramname"><em>parent</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">zx_koid_t&#160;</td>
<td class="paramname"><em>child_koid</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Retrieve the handle of a process' thread, based on koid. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">parent</td><td>The parent object to which the child belongs. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">child_koid</td><td>The koid of the child to retrieve. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A handle representing <em>child_koid</em>, or <code>ZX_HANDLE_INVALID</code> if the handle could not be retrieved, in which case an error will be logged. </dd></dl>
</div>
</div>
<a id="a1b88f2d030f9da088707bc361045ff86"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1b88f2d030f9da088707bc361045ff86">&#9670;&nbsp;</a></span>GetThreadHandles()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::vector&lt; zx::thread &gt; crashpad::GetThreadHandles </td>
<td>(</td>
<td class="paramtype">const zx::process &amp;&#160;</td>
<td class="paramname"><em>parent</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Get handles representing a list of child objects of a given parent. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">parent</td><td>The handle to the parent object. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The resulting list of handles corresponding to the child objects.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="namespacecrashpad.html#a4f31c2f8b1cfea873b757dc486281437" title="Get a list of child koids for a parent handle.">GetChildKoids</a> </dd></dl>
</div>
</div>
<a id="a6925b00a82891a9fd7a77ec6f5259094"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6925b00a82891a9fd7a77ec6f5259094">&#9670;&nbsp;</a></span>HandlerMain()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int crashpad::HandlerMain </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>argc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">char *&#160;</td>
<td class="paramname"><em>argv</em>[], </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const UserStreamDataSources *&#160;</td>
<td class="paramname"><em>user_stream_sources</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>The <code>main()</code> of the <code>crashpad_handler</code> binary. </p>
<p>This is exposed so that <code>crashpad_handler</code> can be embedded into another binary, but called and used as if it were a standalone executable.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">argc</td><td><em>argc</em> as passed to <code>main()</code>. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">argv</td><td><em>argv</em> as passed to <code>main()</code>. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">user_stream_sources</td><td>An optional vector containing the extensibility data sources to call on crash. Each time a minidump is created, the sources are called in turn. Any streams returned are added to the minidump. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="ae643b5c6bce4e11a0f51eb2f4d5fa1de"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae643b5c6bce4e11a0f51eb2f4d5fa1de">&#9670;&nbsp;</a></span>HandleToInt()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int crashpad::HandleToInt </td>
<td>(</td>
<td class="paramtype">HANDLE&#160;</td>
<td class="paramname"><em>handle</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Converts a <code>HANDLE</code> to an <code>int</code>. </p>
<p><code>HANDLE</code> is a <code>typedef</code> for <code>void *</code>, but kernel <code>HANDLE</code> values aren’t pointers to anything. Only 32 bits of kernel <code>HANDLE</code>s are significant, even in 64-bit processes on 64-bit operating systems. See <a href="https://msdn.microsoft.com/library/aa384203.aspx">Interprocess Communication Between 32-bit and 64-bit Applications</a>.</p>
<p>This function safely converts a kernel <code>HANDLE</code> to an <code>int</code> similarly to a cast operation. It checks that the operation can be performed safely, and aborts execution if it cannot.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">handle</td><td>The kernel <code>HANDLE</code> to convert.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>An equivalent <code>int</code>, truncated (if necessary) from <em>handle</em>. If truncation would have resulted in an <code>int</code> that could not be converted back to <em>handle</em>, aborts execution.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="namespacecrashpad.html#a83df06f1e4dc470676c1f86e93b6bc63" title="Converts an int to an HANDLE.">IntToHandle()</a> </dd></dl>
</div>
</div>
<a id="af8340c24a2983e788d2a3ba90d1d4846"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af8340c24a2983e788d2a3ba90d1d4846">&#9670;&nbsp;</a></span>InitializeCriticalSectionWithDebugInfoIfPossible()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool crashpad::InitializeCriticalSectionWithDebugInfoIfPossible </td>
<td>(</td>
<td class="paramtype">CRITICAL_SECTION *&#160;</td>
<td class="paramname"><em>critical_section</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Equivalent to <code>InitializeCritialSection()</code>, but attempts to allocate with a valid <code>.DebugInfo</code> field on versions of Windows where it's possible to do so. </p>
<dl class="section return"><dt>Returns</dt><dd><code>true</code> on success, or <code>false</code> on failure with a message logged. Success means that the critical section was successfully initialized, but it does not necessarily have a valid <code>.DebugInfo</code> field. </dd></dl>
</div>
</div>
<a id="a2a2e6f185467f42cb17ce959a13cc482"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2a2e6f185467f42cb17ce959a13cc482">&#9670;&nbsp;</a></span>InitializeSignalDispositions()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool crashpad::InitializeSignalDispositions </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Establishes signal dispositions for a process based on the platform. </p>
<p>Default signal dispositions are normally configured by the kernel, but additional signal handlers might be installed by dependent or preloaded libraries, e.g. Bionic normally installs signal handlers which log stack traces to Android's logcat.</p>
<p>This function initializes signal dispositions when the default dispositions provided by the platform are broken. This function must be called before any application level signal handlers have been installed and should be called early in the process lifetime to reduce the chance of any broken signal handlers being triggered.</p>
<p>When running on Android M (API 23), this function installs <code>SIG_DFL</code> for signals: <code>SIGABRT</code>, <code>SIGFPE</code>, <code>SIGPIPE</code>, <code>SIGSTKFLT</code>, and <code>SIGTRAP</code>.</p>
<dl class="section return"><dt>Returns</dt><dd><code>true</code> on success. Otherwise <code>false</code> with a message logged. </dd></dl>
</div>
</div>
<a id="a6e1b1c536af301cd418dad62348b1d29"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6e1b1c536af301cd418dad62348b1d29">&#9670;&nbsp;</a></span>InRangeCast()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Destination , typename Source &gt; </div>
<table class="memname">
<tr>
<td class="memname">Destination crashpad::InRangeCast </td>
<td>(</td>
<td class="paramtype">Source&#160;</td>
<td class="paramname"><em>source</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">Destination&#160;</td>
<td class="paramname"><em>default_value</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Casts to a different type if it can be done without data loss, logging a warning message and returing a default value otherwise. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">source</td><td>The value to convert and return. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">default_value</td><td>The default value to return, in the event that <em>source</em> cannot be represented in the destination type.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><em>source</em> if it can be represented in the destination type, otherwise <em>default_value</em>. </dd></dl>
</div>
</div>
<a id="a35ae4d5046f62fec51622484585405a4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a35ae4d5046f62fec51622484585405a4">&#9670;&nbsp;</a></span>InstallObjcExceptionPreprocessor()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void crashpad::InstallObjcExceptionPreprocessor </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Installs the Objective-C exception preprocessor. </p>
<p>When code raises an Objective-C exception, unwind the stack looking for any exception handlers. If an exception handler is encountered, test to see if it is a function known to be a catch-and-rethrow 'sinkhole' exception handler. Various routines in UIKit do this, and they obscure the crashing stack, since the original throw location is no longer present on the stack (just the re-throw) when Crashpad captures the crash report. In the case of sinkholes, trigger an immediate exception to capture the original stack.</p>
<p>This should be installed at the same time the <a class="el" href="classcrashpad_1_1CrashpadClient.html" title="The primary interface for an application to have Crashpad monitor it for crashes.">CrashpadClient</a> installs the signal handler. It should only be installed once. </p>
</div>
</div>
<a id="a83df06f1e4dc470676c1f86e93b6bc63"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a83df06f1e4dc470676c1f86e93b6bc63">&#9670;&nbsp;</a></span>IntToHandle()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">HANDLE crashpad::IntToHandle </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>handle_int</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Converts an <code>int</code> to an <code>HANDLE</code>. </p>
<p><code>HANDLE</code> is a <code>typedef</code> for <code>void *</code>, but kernel <code>HANDLE</code> values aren’t pointers to anything. Only 32 bits of kernel <code>HANDLE</code>s are significant, even in 64-bit processes on 64-bit operating systems. See <a href="https://msdn.microsoft.com/library/aa384203.aspx">Interprocess Communication Between 32-bit and 64-bit Applications</a>.</p>
<p>This function safely convert an <code>int</code> to a kernel <code>HANDLE</code> similarly to a cast operation.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">handle_int</td><td>The <code>int</code> to convert. This must have been produced by <a class="el" href="namespacecrashpad.html#ae643b5c6bce4e11a0f51eb2f4d5fa1de" title="Converts a HANDLE to an int.">HandleToInt()</a>, possibly in a different process.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>An equivalent kernel <code>HANDLE</code>, sign-extended (if necessary) from <em>handle_int</em>.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="namespacecrashpad.html#ae643b5c6bce4e11a0f51eb2f4d5fa1de" title="Converts a HANDLE to an int.">HandleToInt()</a> </dd></dl>
</div>
</div>
<a id="af12fac7cddd34499234ca6617e3e3aa3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af12fac7cddd34499234ca6617e3e3aa3">&#9670;&nbsp;</a></span>IsDirectory()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool crashpad::IsDirectory </td>
<td>(</td>
<td class="paramtype">const base::FilePath &amp;&#160;</td>
<td class="paramname"><em>path</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>allow_symlinks</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Determines if a path refers to a directory, logging a message on failure. </p>
<p>On POSIX, if this function fails because <em>path</em> does not exist, then no message is logged.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">path</td><td>The path to check. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">allow_symlinks</td><td>Whether to allow the final component in the path to be a symbolic link to a directory. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><code>true</code> if the path exists and is a directory. Otherwise <code>false</code>. </dd></dl>
</div>
</div>
<a id="ad2ac0b9fe2a066fecac5e8d9b977e892"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad2ac0b9fe2a066fecac5e8d9b977e892">&#9670;&nbsp;</a></span>IsExceptionNonfatalResource()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool crashpad::IsExceptionNonfatalResource </td>
<td>(</td>
<td class="paramtype">exception_type_t&#160;</td>
<td class="paramname"><em>exception</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">mach_exception_code_t&#160;</td>
<td class="paramname"><em>code_0</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">pid_t&#160;</td>
<td class="paramname"><em>pid</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Determines whether an exception is a non-fatal <code>EXC_RESOURCE</code>. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">exception</td><td>The exception type as received by a Mach exception handler. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">code_0</td><td>The first exception code (<code>code[0]</code>) as received by a Mach exception handler. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">pid</td><td>The process ID that the exception occurred in. In some cases, process may need to be queried to determine whether an <code>EXC_RESOURCE</code> exception is fatal.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><code>true</code> if the exception is a non-fatal <code>EXC_RESOURCE</code>. <code>false</code> otherwise. If the exception is <code>EXC_RESOURCE</code> of a recognized type but it is not possible to determine whether it is fatal, returns <code>true</code> under the assumption that all known <code>EXC_RESOURCE</code> exceptions are non-fatal by default. If the exception is not <code>EXC_RESOURCE</code> or is an unknown <code>EXC_RESOURCE</code> type, returns <code>false</code>. </dd></dl>
</div>
</div>
<a id="a39018ef46b1323a94b6b53d3f5669d94"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a39018ef46b1323a94b6b53d3f5669d94">&#9670;&nbsp;</a></span>IsMalformedCLKernelsModule()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool crashpad::IsMalformedCLKernelsModule </td>
<td>(</td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>mach_o_file_type</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::string &amp;&#160;</td>
<td class="paramname"><em>module_name</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool *&#160;</td>
<td class="paramname"><em>has_timestamp</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Determines whether a module appears to be a malformed OpenCL <code>cl_kernels</code> module based on its name and Mach-O file type. </p>
<p><code>cl_kernels</code> modules require special handling because they’re malformed on OS X 10.10 and later. A <code>cl_kernels</code> module always has Mach-O type <code>MH_BUNDLE</code> and is named <code>"cl_kernels"</code> until macOS 10.14, and <code>"/private/var/db/CVMS/cvmsCodeSignObj"</code> plus 16 random characters on macOS 10.14.</p>
<p>Malformed <code>cl_kernels</code> modules have a single <code>__TEXT</code> segment, but one of the sections within it claims to belong to the <code>__LD</code> segment. This mismatch shouldn’t happen. This errant section also has the <code>S_ATTR_DEBUG</code> flag set, which shouldn’t happen unless all of the other sections in the segment also have this bit set (they don’t). These odd sections are reminiscent of unwind information stored in <code>MH_OBJECT</code> images, although <code>cl_kernels</code> images claim to be <code>MH_BUNDLE</code>.</p>
<p>This function is exposed for testing purposes only.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">mach_o_file_type</td><td>The Mach-O type of the module being examined. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">module_name</td><td>The pathname that <code>dyld</code> reported having loaded the module from. </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">has_timestamp</td><td>Optional, may be <code>nullptr</code>. If provided, and the module is a maformed <code>cl_kernels</code> module, this will be set to <code>true</code> if the module was loaded from the filesystem (as is the case when loaded from the CVMS directory) and is expected to have a timestamp, and <code>false</code> otherwise. Note that even when loaded from the filesystem, these modules are unlinked from the filesystem after loading.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><code>true</code> if the module appears to be a malformed <code>cl_kernels</code> module based on the provided information, <code>false</code> otherwise. </dd></dl>
</div>
</div>
<a id="a3c69205d3a470099d1489f71cbfe7ba6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3c69205d3a470099d1489f71cbfe7ba6">&#9670;&nbsp;</a></span>IsRegularFile()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool crashpad::IsRegularFile </td>
<td>(</td>
<td class="paramtype">const base::FilePath &amp;&#160;</td>
<td class="paramname"><em>path</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Determines if a path refers to a regular file, logging a message on failure. </p>
<p>On POSIX, this function returns <code>true</code> if <em>path</em> refers to a file that is not a symbolic link, directory, or other kind of special file. If this function fails because <em>path</em> does not exist, then no message is logged.</p>
<p>On Windows, this function returns <code>true</code> if <em>path</em> refers to a file that is not a symbolic link or directory.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">path</td><td>The path to the file to check. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><code>true</code> if the file exists and is a regular file. Otherwise <code>false</code>. </dd></dl>
</div>
</div>
<a id="a0358455342226c7906f6d8f3016a6374"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0358455342226c7906f6d8f3016a6374">&#9670;&nbsp;</a></span>IsThreadInLoaderLock()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool crashpad::IsThreadInLoaderLock </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd><code>true</code> if the current thread holds the loader lock. </dd></dl>
</div>
</div>
<a id="aec89d58359f33bb2ba3671feea0c15f4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aec89d58359f33bb2ba3671feea0c15f4">&#9670;&nbsp;</a></span>LaunchDataAlloc()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">launch_data_t crashpad::LaunchDataAlloc </td>
<td>(</td>
<td class="paramtype">launch_data_type_t&#160;</td>
<td class="paramname"><em>type</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Wraps the <code>&lt;launch.h&gt;</code> function of the same name. </p>
<p>The OS X 10.10 SDK deprecates <code>&lt;launch.h&gt;</code>, although the functionality it provides is still useful. These wrappers allow the deprecated functions to be called without triggering deprecated-declaration warnings. </p>
</div>
</div>
<a id="abeb060347d9343e720856380234cd6ff"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abeb060347d9343e720856380234cd6ff">&#9670;&nbsp;</a></span>LaunchDataArrayGetCount()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">size_t crashpad::LaunchDataArrayGetCount </td>
<td>(</td>
<td class="paramtype">launch_data_t&#160;</td>
<td class="paramname"><em>array</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Wraps the <code>&lt;launch.h&gt;</code> function of the same name. </p>
<p>The OS X 10.10 SDK deprecates <code>&lt;launch.h&gt;</code>, although the functionality it provides is still useful. These wrappers allow the deprecated functions to be called without triggering deprecated-declaration warnings. </p>
</div>
</div>
<a id="a46e5304477aab0ad1d165869557eb3b5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a46e5304477aab0ad1d165869557eb3b5">&#9670;&nbsp;</a></span>LaunchDataArrayGetIndex()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">launch_data_t crashpad::LaunchDataArrayGetIndex </td>
<td>(</td>
<td class="paramtype">launch_data_t&#160;</td>
<td class="paramname"><em>array</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>index</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">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Wraps the <code>&lt;launch.h&gt;</code> function of the same name. </p>
<p>The OS X 10.10 SDK deprecates <code>&lt;launch.h&gt;</code>, although the functionality it provides is still useful. These wrappers allow the deprecated functions to be called without triggering deprecated-declaration warnings. </p>
</div>
</div>
<a id="a075be3843e4294e446c40022ba6661c4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a075be3843e4294e446c40022ba6661c4">&#9670;&nbsp;</a></span>LaunchDataArraySetIndex()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool crashpad::LaunchDataArraySetIndex </td>
<td>(</td>
<td class="paramtype">launch_data_t&#160;</td>
<td class="paramname"><em>array</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const launch_data_t&#160;</td>
<td class="paramname"><em>value</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>index</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">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Wraps the <code>&lt;launch.h&gt;</code> function of the same name. </p>
<p>The OS X 10.10 SDK deprecates <code>&lt;launch.h&gt;</code>, although the functionality it provides is still useful. These wrappers allow the deprecated functions to be called without triggering deprecated-declaration warnings. </p>
</div>
</div>
<a id="aedb99d12b989d048f972d843a2aea013"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aedb99d12b989d048f972d843a2aea013">&#9670;&nbsp;</a></span>LaunchDataDictGetCount()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">size_t crashpad::LaunchDataDictGetCount </td>
<td>(</td>
<td class="paramtype">launch_data_t&#160;</td>
<td class="paramname"><em>dict</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Wraps the <code>&lt;launch.h&gt;</code> function of the same name. </p>
<p>The OS X 10.10 SDK deprecates <code>&lt;launch.h&gt;</code>, although the functionality it provides is still useful. These wrappers allow the deprecated functions to be called without triggering deprecated-declaration warnings. </p>
</div>
</div>
<a id="a5637f13db21865305a5d09b123647ee0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5637f13db21865305a5d09b123647ee0">&#9670;&nbsp;</a></span>LaunchDataDictInsert()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool crashpad::LaunchDataDictInsert </td>
<td>(</td>
<td class="paramtype">launch_data_t&#160;</td>
<td class="paramname"><em>dict</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const launch_data_t&#160;</td>
<td class="paramname"><em>value</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>key</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">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Wraps the <code>&lt;launch.h&gt;</code> function of the same name. </p>
<p>The OS X 10.10 SDK deprecates <code>&lt;launch.h&gt;</code>, although the functionality it provides is still useful. These wrappers allow the deprecated functions to be called without triggering deprecated-declaration warnings. </p>
</div>
</div>
<a id="a7d4549b38faef80da81a53b88b1a27ac"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7d4549b38faef80da81a53b88b1a27ac">&#9670;&nbsp;</a></span>LaunchDataDictLookup()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">launch_data_t crashpad::LaunchDataDictLookup </td>
<td>(</td>
<td class="paramtype">const launch_data_t&#160;</td>
<td class="paramname"><em>dict</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>key</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">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Wraps the <code>&lt;launch.h&gt;</code> function of the same name. </p>
<p>The OS X 10.10 SDK deprecates <code>&lt;launch.h&gt;</code>, although the functionality it provides is still useful. These wrappers allow the deprecated functions to be called without triggering deprecated-declaration warnings. </p>
</div>
</div>
<a id="a6075a91ef08754a4f6f1d1cc4f4243d2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6075a91ef08754a4f6f1d1cc4f4243d2">&#9670;&nbsp;</a></span>LaunchDataFree()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void crashpad::LaunchDataFree </td>
<td>(</td>
<td class="paramtype">launch_data_t&#160;</td>
<td class="paramname"><em>data</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Wraps the <code>&lt;launch.h&gt;</code> function of the same name. </p>
<p>The OS X 10.10 SDK deprecates <code>&lt;launch.h&gt;</code>, although the functionality it provides is still useful. These wrappers allow the deprecated functions to be called without triggering deprecated-declaration warnings. </p>
</div>
</div>
<a id="a6fd262daa89e57ffd897e4b583d44d44"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6fd262daa89e57ffd897e4b583d44d44">&#9670;&nbsp;</a></span>LaunchDataGetBool()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool crashpad::LaunchDataGetBool </td>
<td>(</td>
<td class="paramtype">const launch_data_t&#160;</td>
<td class="paramname"><em>data</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Wraps the <code>&lt;launch.h&gt;</code> function of the same name. </p>
<p>The OS X 10.10 SDK deprecates <code>&lt;launch.h&gt;</code>, although the functionality it provides is still useful. These wrappers allow the deprecated functions to be called without triggering deprecated-declaration warnings. </p>
</div>
</div>
<a id="a5637cdc78caedaaadb2c0e47857ccf78"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5637cdc78caedaaadb2c0e47857ccf78">&#9670;&nbsp;</a></span>LaunchDataGetErrno()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">int crashpad::LaunchDataGetErrno </td>
<td>(</td>
<td class="paramtype">const launch_data_t&#160;</td>
<td class="paramname"><em>data</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Wraps the <code>&lt;launch.h&gt;</code> function of the same name. </p>
<p>The OS X 10.10 SDK deprecates <code>&lt;launch.h&gt;</code>, although the functionality it provides is still useful. These wrappers allow the deprecated functions to be called without triggering deprecated-declaration warnings. </p>
</div>
</div>
<a id="a54549da20f78530f300712625fc0ba5a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a54549da20f78530f300712625fc0ba5a">&#9670;&nbsp;</a></span>LaunchDataGetInteger()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">long long crashpad::LaunchDataGetInteger </td>
<td>(</td>
<td class="paramtype">const launch_data_t&#160;</td>
<td class="paramname"><em>data</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Wraps the <code>&lt;launch.h&gt;</code> function of the same name. </p>
<p>The OS X 10.10 SDK deprecates <code>&lt;launch.h&gt;</code>, although the functionality it provides is still useful. These wrappers allow the deprecated functions to be called without triggering deprecated-declaration warnings. </p>
</div>
</div>
<a id="aaf2fbe2de028de73c9013d6c0759bc2b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aaf2fbe2de028de73c9013d6c0759bc2b">&#9670;&nbsp;</a></span>LaunchDataGetOpaque()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void* crashpad::LaunchDataGetOpaque </td>
<td>(</td>
<td class="paramtype">const launch_data_t&#160;</td>
<td class="paramname"><em>data</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Wraps the <code>&lt;launch.h&gt;</code> function of the same name. </p>
<p>The OS X 10.10 SDK deprecates <code>&lt;launch.h&gt;</code>, although the functionality it provides is still useful. These wrappers allow the deprecated functions to be called without triggering deprecated-declaration warnings. </p>
</div>
</div>
<a id="a6ed0f2e24befe2e6faa94445bb03e054"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6ed0f2e24befe2e6faa94445bb03e054">&#9670;&nbsp;</a></span>LaunchDataGetOpaqueSize()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">size_t crashpad::LaunchDataGetOpaqueSize </td>
<td>(</td>
<td class="paramtype">const launch_data_t&#160;</td>
<td class="paramname"><em>data</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Wraps the <code>&lt;launch.h&gt;</code> function of the same name. </p>
<p>The OS X 10.10 SDK deprecates <code>&lt;launch.h&gt;</code>, although the functionality it provides is still useful. These wrappers allow the deprecated functions to be called without triggering deprecated-declaration warnings. </p>
</div>
</div>
<a id="a21114f1a9f28bfb065033f569d466a09"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a21114f1a9f28bfb065033f569d466a09">&#9670;&nbsp;</a></span>LaunchDataGetReal()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">double crashpad::LaunchDataGetReal </td>
<td>(</td>
<td class="paramtype">const launch_data_t&#160;</td>
<td class="paramname"><em>data</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Wraps the <code>&lt;launch.h&gt;</code> function of the same name. </p>
<p>The OS X 10.10 SDK deprecates <code>&lt;launch.h&gt;</code>, although the functionality it provides is still useful. These wrappers allow the deprecated functions to be called without triggering deprecated-declaration warnings. </p>
</div>
</div>
<a id="a30a24e225530ab7feeb3e12df480f5c5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a30a24e225530ab7feeb3e12df480f5c5">&#9670;&nbsp;</a></span>LaunchDataGetString()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const char* crashpad::LaunchDataGetString </td>
<td>(</td>
<td class="paramtype">const launch_data_t&#160;</td>
<td class="paramname"><em>data</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Wraps the <code>&lt;launch.h&gt;</code> function of the same name. </p>
<p>The OS X 10.10 SDK deprecates <code>&lt;launch.h&gt;</code>, although the functionality it provides is still useful. These wrappers allow the deprecated functions to be called without triggering deprecated-declaration warnings. </p>
</div>
</div>
<a id="a765503fd97e9e3d622d3b30bff543fb9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a765503fd97e9e3d622d3b30bff543fb9">&#9670;&nbsp;</a></span>LaunchDataGetType()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">launch_data_type_t crashpad::LaunchDataGetType </td>
<td>(</td>
<td class="paramtype">const launch_data_t&#160;</td>
<td class="paramname"><em>data</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Wraps the <code>&lt;launch.h&gt;</code> function of the same name. </p>
<p>The OS X 10.10 SDK deprecates <code>&lt;launch.h&gt;</code>, although the functionality it provides is still useful. These wrappers allow the deprecated functions to be called without triggering deprecated-declaration warnings. </p>
</div>
</div>
<a id="a19e679e954d2d8ca88ace03ccab5c4df"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a19e679e954d2d8ca88ace03ccab5c4df">&#9670;&nbsp;</a></span>LaunchDataNewBool()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">launch_data_t crashpad::LaunchDataNewBool </td>
<td>(</td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>boolean</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Wraps the <code>&lt;launch.h&gt;</code> function of the same name. </p>
<p>The OS X 10.10 SDK deprecates <code>&lt;launch.h&gt;</code>, although the functionality it provides is still useful. These wrappers allow the deprecated functions to be called without triggering deprecated-declaration warnings. </p>
</div>
</div>
<a id="a7b4bfcaae95ef3a81e3ec2d27f059bab"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7b4bfcaae95ef3a81e3ec2d27f059bab">&#9670;&nbsp;</a></span>LaunchDataNewInteger()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">launch_data_t crashpad::LaunchDataNewInteger </td>
<td>(</td>
<td class="paramtype">long long&#160;</td>
<td class="paramname"><em>integer</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Wraps the <code>&lt;launch.h&gt;</code> function of the same name. </p>
<p>The OS X 10.10 SDK deprecates <code>&lt;launch.h&gt;</code>, although the functionality it provides is still useful. These wrappers allow the deprecated functions to be called without triggering deprecated-declaration warnings. </p>
</div>
</div>
<a id="a5af22dade75539fd9e5032acf799c945"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5af22dade75539fd9e5032acf799c945">&#9670;&nbsp;</a></span>LaunchDataNewOpaque()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">launch_data_t crashpad::LaunchDataNewOpaque </td>
<td>(</td>
<td class="paramtype">const void *&#160;</td>
<td class="paramname"><em>opaque</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>size</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">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Wraps the <code>&lt;launch.h&gt;</code> function of the same name. </p>
<p>The OS X 10.10 SDK deprecates <code>&lt;launch.h&gt;</code>, although the functionality it provides is still useful. These wrappers allow the deprecated functions to be called without triggering deprecated-declaration warnings. </p>
</div>
</div>
<a id="aa78698056108819fe4bd268cc55801c3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa78698056108819fe4bd268cc55801c3">&#9670;&nbsp;</a></span>LaunchDataNewReal()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">launch_data_t crashpad::LaunchDataNewReal </td>
<td>(</td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>real</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Wraps the <code>&lt;launch.h&gt;</code> function of the same name. </p>
<p>The OS X 10.10 SDK deprecates <code>&lt;launch.h&gt;</code>, although the functionality it provides is still useful. These wrappers allow the deprecated functions to be called without triggering deprecated-declaration warnings. </p>
</div>
</div>
<a id="a7ae48002caa906acb164114bc290b048"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7ae48002caa906acb164114bc290b048">&#9670;&nbsp;</a></span>LaunchDataNewString()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">launch_data_t crashpad::LaunchDataNewString </td>
<td>(</td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>string</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Wraps the <code>&lt;launch.h&gt;</code> function of the same name. </p>
<p>The OS X 10.10 SDK deprecates <code>&lt;launch.h&gt;</code>, although the functionality it provides is still useful. These wrappers allow the deprecated functions to be called without triggering deprecated-declaration warnings. </p>
</div>
</div>
<a id="ae541f07925a67de751502b903af919b4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae541f07925a67de751502b903af919b4">&#9670;&nbsp;</a></span>LaunchMsg()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">launch_data_t crashpad::LaunchMsg </td>
<td>(</td>
<td class="paramtype">const launch_data_t&#160;</td>
<td class="paramname"><em>data</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Wraps the <code>&lt;launch.h&gt;</code> function of the same name. </p>
<p>The OS X 10.10 SDK deprecates <code>&lt;launch.h&gt;</code>, although the functionality it provides is still useful. These wrappers allow the deprecated functions to be called without triggering deprecated-declaration warnings. </p>
</div>
</div>
<a id="ab9db00544fd57cfde0bb03d32b989221"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab9db00544fd57cfde0bb03d32b989221">&#9670;&nbsp;</a></span>LoggingCloseFile()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool crashpad::LoggingCloseFile </td>
<td>(</td>
<td class="paramtype"><a class="el" href="namespacecrashpad.html#a07f8e33c4fdeba3783277f9f2563e48a">FileHandle</a>&#160;</td>
<td class="paramname"><em>file</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Wraps <code>close()</code> or <code>CloseHandle()</code>, logging an error if the operation fails. </p>
<dl class="section return"><dt>Returns</dt><dd>On success, <code>true</code> is returned. On failure, an error is logged and <code>false</code> is returned. </dd></dl>
</div>
</div>
<a id="a7ae84cd353b237bfdf698d40da521568"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7ae84cd353b237bfdf698d40da521568">&#9670;&nbsp;</a></span>LoggingCreateDirectory()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool crashpad::LoggingCreateDirectory </td>
<td>(</td>
<td class="paramtype">const base::FilePath &amp;&#160;</td>
<td class="paramname"><em>path</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacecrashpad.html#a034ccc90eb0d1f587ee89275d822175d">FilePermissions</a>&#160;</td>
<td class="paramname"><em>permissions</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>may_reuse</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Creates a directory, logging a message on failure. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">path</td><td>The path to the directory to create. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">permissions</td><td>The permissions to use if the directory is created. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">may_reuse</td><td>If <code>true</code>, this function will return <code>true</code> if a directory or symbolic link to a directory with path <em>path</em> already exists. If the directory already exists, it's permissions may differ from <em>permissions</em>. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><code>true</code> if the directory is successfully created or it already existed and <em>may_reuse</em> is <code>true</code>. Otherwise, <code>false</code>. </dd></dl>
</div>
</div>
<a id="acb7b5be59c1293af50753130136aeb32"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acb7b5be59c1293af50753130136aeb32">&#9670;&nbsp;</a></span>LoggingDetermineMergedRange()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool crashpad::LoggingDetermineMergedRange </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classcrashpad_1_1MemorySnapshot.html">MemorySnapshot</a> *&#160;</td>
<td class="paramname"><em>a</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classcrashpad_1_1MemorySnapshot.html">MemorySnapshot</a> *&#160;</td>
<td class="paramname"><em>b</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classcrashpad_1_1CheckedRange.html">CheckedRange</a>&lt; uint64_t, size_t &gt; *&#160;</td>
<td class="paramname"><em>merged</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Given two memory snapshots, checks if they're overlapping or abutting, and if so, returns the result of merging the two ranges. </p>
<p>This function is useful to implement <a class="el" href="classcrashpad_1_1MemorySnapshot.html#ac215c8c515725ac43f2bf5ec5d7a27a4" title="Creates a new MemorySnapshot based on merging this one with other.">MemorySnapshot::MergeWithOtherSnapshot()</a>.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>The first range. Must have Size() &gt; 0. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>The second range. Must have Size() &gt; 0. </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">merged</td><td>The resulting merged range. May be <code>nullptr</code> if only a characterization of the ranges is desired.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><code>true</code> if the input ranges overlap or abut, with <em>merged</em> filled out, otherwise, <code>false</code> with an error logged if <em>log</em> is <code>true</code>. </dd></dl>
</div>
</div>
<a id="a0224d5a689cdb8c2315c255fd6ea6b5c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0224d5a689cdb8c2315c255fd6ea6b5c">&#9670;&nbsp;</a></span>LoggingFileSizeByHandle()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="namespacecrashpad.html#a1e53a1957d9edcba8b406ea632b6daf2">FileOffset</a> crashpad::LoggingFileSizeByHandle </td>
<td>(</td>
<td class="paramtype"><a class="el" href="namespacecrashpad.html#a07f8e33c4fdeba3783277f9f2563e48a">FileHandle</a>&#160;</td>
<td class="paramname"><em>file</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Determines the size of a file. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">file</td><td>The handle to the file for which the size should be retrieved.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The size of the file. If an error occurs when attempting to determine its size, returns <code>-1</code> with an error logged. </dd></dl>
</div>
</div>
<a id="acd02263566d8c43fc7886f88a13b364f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acd02263566d8c43fc7886f88a13b364f">&#9670;&nbsp;</a></span>LoggingLockFile()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool crashpad::LoggingLockFile </td>
<td>(</td>
<td class="paramtype"><a class="el" href="namespacecrashpad.html#a07f8e33c4fdeba3783277f9f2563e48a">FileHandle</a>&#160;</td>
<td class="paramname"><em>file</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacecrashpad.html#a3753a95b02e5c96c6e20017e467cef07">FileLocking</a>&#160;</td>
<td class="paramname"><em>locking</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Locks the given <em>file</em> using <code>flock()</code> on POSIX or <code>LockFileEx()</code> on Windows. </p>
<p>It is an error to attempt to lock a file in a different mode when it is already locked. This call will block until the lock is acquired. The entire file is locked.</p>
<p>If <em>locking</em> is <a class="el" href="namespacecrashpad.html#a3753a95b02e5c96c6e20017e467cef07a767e1337acb2aa20d7ce4e903a75ca16" title="Equivalent to flock() with LOCK_SH.">FileLocking::kShared</a>, <em>file</em> must have been opened for reading, and if it's <a class="el" href="namespacecrashpad.html#a3753a95b02e5c96c6e20017e467cef07a9d38b79e17ebc3239ca19ba517174b5b" title="Equivalent to flock() with LOCK_EX.">FileLocking::kExclusive</a>, <em>file</em> must have been opened for writing.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">file</td><td>The open file handle to be locked. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">locking</td><td>Controls whether the lock is a shared reader lock, or an exclusive writer lock.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><code>true</code> on success, or <code>false</code> and a message will be logged. </dd></dl>
</div>
</div>
<a id="ab3712d59104f641109b170c78a912b4d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab3712d59104f641109b170c78a912b4d">&#9670;&nbsp;</a></span>LoggingOpenFileForRead()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="namespacecrashpad.html#a07f8e33c4fdeba3783277f9f2563e48a">FileHandle</a> crashpad::LoggingOpenFileForRead </td>
<td>(</td>
<td class="paramtype">const base::FilePath &amp;&#160;</td>
<td class="paramname"><em>path</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Wraps <a class="el" href="namespacecrashpad.html#a7987df05e1260e6d8d93ee3a21e9b0eb" title="Wraps open() or CreateFile(), opening an existing file for reading.">OpenFileForRead()</a>, logging an error if the operation fails. </p>
<dl class="section return"><dt>Returns</dt><dd>The newly opened FileHandle, or an invalid FileHandle on failure.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="namespacecrashpad.html#a9daa1b956487883acd9f43d13cc77339" title="Scoped wrapper of a FileHandle.">ScopedFileHandle</a> </dd>
<dd>
<a class="el" href="namespacecrashpad.html#a62fc6876cc0c660f0ea8bd1dd0a07e82" title="Wraps OpenFileForWrite(), logging an error if the operation fails.">LoggingOpenFileForWrite</a> </dd>
<dd>
<a class="el" href="namespacecrashpad.html#aab3e964bdba04aaf74e7a27a36efe108" title="Wraps OpenFileForReadAndWrite(), logging an error if the operation fails.">LoggingOpenFileForReadAndWrite</a> </dd></dl>
</div>
</div>
<a id="aab3e964bdba04aaf74e7a27a36efe108"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aab3e964bdba04aaf74e7a27a36efe108">&#9670;&nbsp;</a></span>LoggingOpenFileForReadAndWrite()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="namespacecrashpad.html#a07f8e33c4fdeba3783277f9f2563e48a">FileHandle</a> crashpad::LoggingOpenFileForReadAndWrite </td>
<td>(</td>
<td class="paramtype">const base::FilePath &amp;&#160;</td>
<td class="paramname"><em>path</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacecrashpad.html#afa69b0967d9a6df659ff5d2a02ff3e51">FileWriteMode</a>&#160;</td>
<td class="paramname"><em>mode</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacecrashpad.html#a034ccc90eb0d1f587ee89275d822175d">FilePermissions</a>&#160;</td>
<td class="paramname"><em>permissions</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Wraps <a class="el" href="namespacecrashpad.html#abe6238b18be49921772c14dd25a624de" title="Wraps open() or CreateFile(), creating a file for both input and output.">OpenFileForReadAndWrite()</a>, logging an error if the operation fails. </p>
<dl class="section return"><dt>Returns</dt><dd>The newly opened FileHandle, or an invalid FileHandle on failure.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="namespacecrashpad.html#a9daa1b956487883acd9f43d13cc77339" title="Scoped wrapper of a FileHandle.">ScopedFileHandle</a> </dd>
<dd>
<a class="el" href="namespacecrashpad.html#ab3712d59104f641109b170c78a912b4d" title="Wraps OpenFileForRead(), logging an error if the operation fails.">LoggingOpenFileForRead</a> </dd>
<dd>
<a class="el" href="namespacecrashpad.html#a62fc6876cc0c660f0ea8bd1dd0a07e82" title="Wraps OpenFileForWrite(), logging an error if the operation fails.">LoggingOpenFileForWrite</a> </dd></dl>
</div>
</div>
<a id="a62fc6876cc0c660f0ea8bd1dd0a07e82"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a62fc6876cc0c660f0ea8bd1dd0a07e82">&#9670;&nbsp;</a></span>LoggingOpenFileForWrite()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="namespacecrashpad.html#a07f8e33c4fdeba3783277f9f2563e48a">FileHandle</a> crashpad::LoggingOpenFileForWrite </td>
<td>(</td>
<td class="paramtype">const base::FilePath &amp;&#160;</td>
<td class="paramname"><em>path</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacecrashpad.html#afa69b0967d9a6df659ff5d2a02ff3e51">FileWriteMode</a>&#160;</td>
<td class="paramname"><em>mode</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacecrashpad.html#a034ccc90eb0d1f587ee89275d822175d">FilePermissions</a>&#160;</td>
<td class="paramname"><em>permissions</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Wraps <a class="el" href="namespacecrashpad.html#ad8e8848af82384f7757108c8c445f18d" title="Wraps open() or CreateFile(), creating a file for output.">OpenFileForWrite()</a>, logging an error if the operation fails. </p>
<dl class="section return"><dt>Returns</dt><dd>The newly opened FileHandle, or an invalid FileHandle on failure.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="namespacecrashpad.html#a9daa1b956487883acd9f43d13cc77339" title="Scoped wrapper of a FileHandle.">ScopedFileHandle</a> </dd>
<dd>
<a class="el" href="namespacecrashpad.html#ab3712d59104f641109b170c78a912b4d" title="Wraps OpenFileForRead(), logging an error if the operation fails.">LoggingOpenFileForRead</a> </dd>
<dd>
<a class="el" href="namespacecrashpad.html#aab3e964bdba04aaf74e7a27a36efe108" title="Wraps OpenFileForReadAndWrite(), logging an error if the operation fails.">LoggingOpenFileForReadAndWrite</a> </dd></dl>
</div>
</div>
<a id="a300ac399f9d33a4c47b4e4c148ebbe7c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a300ac399f9d33a4c47b4e4c148ebbe7c">&#9670;&nbsp;</a></span>LoggingReadEntireFile()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool crashpad::LoggingReadEntireFile </td>
<td>(</td>
<td class="paramtype">const base::FilePath &amp;&#160;</td>
<td class="paramname"><em>path</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::string *&#160;</td>
<td class="paramname"><em>contents</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Wraps <a class="el" href="namespacecrashpad.html#ab3712d59104f641109b170c78a912b4d" title="Wraps OpenFileForRead(), logging an error if the operation fails.">LoggingOpenFileForRead()</a> and <a class="el" href="namespacecrashpad.html#a8599600814a17d622766decd5f122a96" title="Reads from a file, retrying when interrupted before reading any data on POSIX.">ReadFile()</a> reading the entire file into <em>contents</em>. </p>
<dl class="section return"><dt>Returns</dt><dd><code>true</code> on success, or <code>false</code> with a message logged. </dd></dl>
</div>
</div>
<a id="ac3fb8955565f605e08c1e30562fbdb7a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac3fb8955565f605e08c1e30562fbdb7a">&#9670;&nbsp;</a></span>LoggingReadFileExactly()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool crashpad::LoggingReadFileExactly </td>
<td>(</td>
<td class="paramtype"><a class="el" href="namespacecrashpad.html#a07f8e33c4fdeba3783277f9f2563e48a">FileHandle</a>&#160;</td>
<td class="paramname"><em>file</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>buffer</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>size</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Wraps <a class="el" href="namespacecrashpad.html#a8599600814a17d622766decd5f122a96" title="Reads from a file, retrying when interrupted before reading any data on POSIX.">ReadFile()</a>, retrying following a short read, ensuring that exactly <em>size</em> bytes are read. </p>
<dl class="section return"><dt>Returns</dt><dd><code>true</code> on success. If the underlying <a class="el" href="namespacecrashpad.html#a8599600814a17d622766decd5f122a96" title="Reads from a file, retrying when interrupted before reading any data on POSIX.">ReadFile()</a> fails, or if fewer than <em>size</em> bytes were read, this function logs a message and returns <code>false</code>.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="namespacecrashpad.html#a8a91af9c690d2a280c463596bf82070b" title="Wraps WriteFile(), ensuring that exactly size bytes are written.">LoggingWriteFile</a> </dd>
<dd>
<a class="el" href="namespacecrashpad.html#a8599600814a17d622766decd5f122a96" title="Reads from a file, retrying when interrupted before reading any data on POSIX.">ReadFile</a> </dd>
<dd>
<a class="el" href="namespacecrashpad.html#a6e685af255d9b71fb46ed2679329dd7c" title="Wraps ReadFile(), retrying following a short read, ensuring that exactly size bytes are read.">ReadFileExactly</a> </dd>
<dd>
<a class="el" href="namespacecrashpad.html#a00e03e19185b0fde6301be6b113628cb" title="Wraps ReadFile(), ensuring that exactly size bytes are read.">CheckedReadFileExactly</a> </dd>
<dd>
<a class="el" href="namespacecrashpad.html#ac8e7e1b1a4b89b489964ffee54d0d9df" title="Wraps ReadFile(), ensuring that it indicates end-of-file.">CheckedReadFileAtEOF</a> </dd></dl>
</div>
</div>
<a id="ae52dab87e27350dd4c70ea4c8ac258cc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae52dab87e27350dd4c70ea4c8ac258cc">&#9670;&nbsp;</a></span>LoggingReadToEOF()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool crashpad::LoggingReadToEOF </td>
<td>(</td>
<td class="paramtype"><a class="el" href="namespacecrashpad.html#a07f8e33c4fdeba3783277f9f2563e48a">FileHandle</a>&#160;</td>
<td class="paramname"><em>file</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::string *&#160;</td>
<td class="paramname"><em>contents</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Wraps <a class="el" href="namespacecrashpad.html#a8599600814a17d622766decd5f122a96" title="Reads from a file, retrying when interrupted before reading any data on POSIX.">ReadFile()</a> to read from the current file position to the end of the file into <em>contents</em>. </p>
<dl class="section return"><dt>Returns</dt><dd><code>true</code> on success, or <code>false</code> with a message logged. </dd></dl>
</div>
</div>
<a id="a7fdc84fcc207cf0b718626997d11ad04"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7fdc84fcc207cf0b718626997d11ad04">&#9670;&nbsp;</a></span>LoggingRemoveDirectory()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool crashpad::LoggingRemoveDirectory </td>
<td>(</td>
<td class="paramtype">const base::FilePath &amp;&#160;</td>
<td class="paramname"><em>path</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Non-recurseively removes an empty directory, logging a message on failure. </p>
<p>This function will not remove symbolic links to directories.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">path</td><td>The to the directory to remove. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><code>true</code> if the directory was removed. Otherwise, <code>false</code>. </dd></dl>
</div>
</div>
<a id="ac7c5ccd8661bd87eed66eae26fb9e0d3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac7c5ccd8661bd87eed66eae26fb9e0d3">&#9670;&nbsp;</a></span>LoggingRemoveFile()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool crashpad::LoggingRemoveFile </td>
<td>(</td>
<td class="paramtype">const base::FilePath &amp;&#160;</td>
<td class="paramname"><em>path</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Removes a file or a symbolic link to a file or directory, logging a message on failure. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">path</td><td>The path to the file to remove. </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>
</div>
</div>
<a id="a3d6cedc10e24145d4a0c1000c33f8a10"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3d6cedc10e24145d4a0c1000c33f8a10">&#9670;&nbsp;</a></span>LoggingSeekFile()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="namespacecrashpad.html#a1e53a1957d9edcba8b406ea632b6daf2">FileOffset</a> crashpad::LoggingSeekFile </td>
<td>(</td>
<td class="paramtype"><a class="el" href="namespacecrashpad.html#a07f8e33c4fdeba3783277f9f2563e48a">FileHandle</a>&#160;</td>
<td class="paramname"><em>file</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacecrashpad.html#a1e53a1957d9edcba8b406ea632b6daf2">FileOffset</a>&#160;</td>
<td class="paramname"><em>offset</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>whence</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Wraps <code>lseek()</code> or <code>SetFilePointerEx()</code>. Logs an error if the operation fails. </p>
<p>Repositions the offset of the open <em>file</em> to the specified <em>offset</em>, relative to <em>whence</em>. <em>whence</em> must be one of <code>SEEK_SET</code>, <code>SEEK_CUR</code>, or <code>SEEK_END</code>, and is interpreted in the usual way.</p>
<dl class="section return"><dt>Returns</dt><dd>The resulting offset in bytes from the beginning of the file, or <code>-1</code> on failure. </dd></dl>
</div>
</div>
<a id="a06ba30c1a4b2974f1d4ea842db55b068"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a06ba30c1a4b2974f1d4ea842db55b068">&#9670;&nbsp;</a></span>LoggingTruncateFile()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool crashpad::LoggingTruncateFile </td>
<td>(</td>
<td class="paramtype"><a class="el" href="namespacecrashpad.html#a07f8e33c4fdeba3783277f9f2563e48a">FileHandle</a>&#160;</td>
<td class="paramname"><em>file</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Truncates the given <em>file</em> to zero bytes in length. </p>
<dl class="section return"><dt>Returns</dt><dd><code>true</code> on success, or <code>false</code>, and a message will be logged. </dd></dl>
</div>
</div>
<a id="a15c1f3a2c6f04e944fdca12e22b0cb6e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a15c1f3a2c6f04e944fdca12e22b0cb6e">&#9670;&nbsp;</a></span>LoggingUnlockFile()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool crashpad::LoggingUnlockFile </td>
<td>(</td>
<td class="paramtype"><a class="el" href="namespacecrashpad.html#a07f8e33c4fdeba3783277f9f2563e48a">FileHandle</a>&#160;</td>
<td class="paramname"><em>file</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Unlocks a file previously locked with <a class="el" href="namespacecrashpad.html#acd02263566d8c43fc7886f88a13b364f" title="Locks the given file using flock() on POSIX or LockFileEx() on Windows.">LoggingLockFile()</a>. </p>
<p>It is an error to attempt to unlock a file that was not previously locked. A previously-locked file should be unlocked before closing the file handle, otherwise on some OSs the lock may not be released immediately.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">file</td><td>The open locked file handle to be unlocked.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><code>true</code> on success, or <code>false</code> and a message will be logged. </dd></dl>
</div>
</div>
<a id="a8a91af9c690d2a280c463596bf82070b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8a91af9c690d2a280c463596bf82070b">&#9670;&nbsp;</a></span>LoggingWriteFile()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool crashpad::LoggingWriteFile </td>
<td>(</td>
<td class="paramtype"><a class="el" href="namespacecrashpad.html#a07f8e33c4fdeba3783277f9f2563e48a">FileHandle</a>&#160;</td>
<td class="paramname"><em>file</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const void *&#160;</td>
<td class="paramname"><em>buffer</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>size</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Wraps <a class="el" href="namespacecrashpad.html#ada530c306bf30e9ed9274c20d05c0db4" title="Writes to a file, retrying when interrupted on POSIX or following a short write.">WriteFile()</a>, ensuring that exactly <em>size</em> bytes are written. </p>
<dl class="section return"><dt>Returns</dt><dd><code>true</code> on success. If the underlying <a class="el" href="namespacecrashpad.html#ada530c306bf30e9ed9274c20d05c0db4" title="Writes to a file, retrying when interrupted on POSIX or following a short write.">WriteFile()</a> fails, or if fewer than <em>size</em> bytes were written, this function logs a message and returns <code>false</code>.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="namespacecrashpad.html#ac3fb8955565f605e08c1e30562fbdb7a" title="Wraps ReadFile(), retrying following a short read, ensuring that exactly size bytes are read.">LoggingReadFileExactly</a> </dd>
<dd>
<a class="el" href="namespacecrashpad.html#ada530c306bf30e9ed9274c20d05c0db4" title="Writes to a file, retrying when interrupted on POSIX or following a short write.">WriteFile</a> </dd>
<dd>
<a class="el" href="namespacecrashpad.html#a74c74fefa3b1f5e0c1b885755c9f9cf6" title="Wraps WriteFile(), ensuring that exactly size bytes are written.">CheckedWriteFile</a> </dd></dl>
</div>
</div>
<a id="aa31f495c675536bcb30d1267c3a9b696"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa31f495c675536bcb30d1267c3a9b696">&#9670;&nbsp;</a></span>MachMessageDeadlineFromTimeout()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="namespacecrashpad.html#a34f36473e385b19eb229798ab2f7210c">MachMessageDeadline</a> crashpad::MachMessageDeadlineFromTimeout </td>
<td>(</td>
<td class="paramtype">mach_msg_timeout_t&#160;</td>
<td class="paramname"><em>timeout_ms</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Computes the deadline for a specified timeout value. </p>
<p>While deadlines exist on an absolute time scale, timeouts are relative. This function calculates the deadline as <em>timeout_ms</em> milliseconds after it executes.</p>
<p>If <em>timeout_ms</em> is <a class="el" href="namespacecrashpad.html#af3f950b6030a2822b1780155b38ae9b6a6461bf9de012b5f2305fb3da6d0f82d5" title="MachMessageWithDeadline() should not block at all in its operation.">kMachMessageDeadlineNonblocking</a>, this function will return <a class="el" href="namespacecrashpad.html#af3f950b6030a2822b1780155b38ae9b6a6461bf9de012b5f2305fb3da6d0f82d5" title="MachMessageWithDeadline() should not block at all in its operation.">kMachMessageDeadlineNonblocking</a>. If <em>timeout_ms</em> is <a class="el" href="namespacecrashpad.html#ac805f7bb551683e1da0b156c09259c92aaf4f2c8a649ea6bcfe896e77c312315f" title="When passed to MachMessageDeadlineFromTimeout(), that function will return kMachMessageDeadlineWaitIn...">kMachMessageTimeoutWaitIndefinitely</a>, this function will return <a class="el" href="namespacecrashpad.html#af3f950b6030a2822b1780155b38ae9b6a848a739b3c252f4565161a6bd3f070d6" title="MachMessageWithDeadline() should wait indefinitely for the requested operation to complete.">kMachMessageDeadlineWaitIndefinitely</a>. </p>
</div>
</div>
<a id="a2670a96d46f33b0e88db50a6222c0b47"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2670a96d46f33b0e88db50a6222c0b47">&#9670;&nbsp;</a></span>MachMessageDestroyReceivedPort()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool crashpad::MachMessageDestroyReceivedPort </td>
<td>(</td>
<td class="paramtype">mach_port_t&#160;</td>
<td class="paramname"><em>port</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">mach_msg_type_name_t&#160;</td>
<td class="paramname"><em>port_right_type</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Destroys or deallocates a Mach port received in a Mach message. </p>
<p>This function disposes of port rights received in a Mach message. Receive rights will be destroyed with <code>mach_port_mod_refs()</code>. Send and send-once rights will be deallocated with <code>mach_port_deallocate()</code>.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">port</td><td>The port to destroy or deallocate. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">port_right_type</td><td>The right type held for <em>port:</em> <code>MACH_MSG_TYPE_PORT_RECEIVE</code>, <code>MACH_MSG_TYPE_PORT_SEND</code>, or <code>MACH_MSG_TYPE_PORT_SEND_ONCE</code>.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><code>true</code> on success, or <code>false</code> on failure with a message logged. </dd></dl>
</div>
</div>
<a id="a979ca1d327dcf56488d3304efa9680eb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a979ca1d327dcf56488d3304efa9680eb">&#9670;&nbsp;</a></span>MachMessageTrailerFromHeader()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const mach_msg_trailer_t * crashpad::MachMessageTrailerFromHeader </td>
<td>(</td>
<td class="paramtype">const mach_msg_header_t *&#160;</td>
<td class="paramname"><em>header</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns a Mach message trailer for a message that has been received. </p>
<p>This function must only be called on Mach messages that have been received via the Mach messaging interface, such as <code>mach_msg()</code>. Messages constructed for sending do not contain trailers.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">header</td><td>A pointer to a received Mach message.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A pointer to the trailer following the received Mach message’s body. The contents of the trailer depend on the options provided to <code>mach_msg()</code> or a similar function when the message was received. </dd></dl>
</div>
</div>
<a id="a35293418a0b7637a00631807ac4b431e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a35293418a0b7637a00631807ac4b431e">&#9670;&nbsp;</a></span>MachMessageWithDeadline()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">mach_msg_return_t crashpad::MachMessageWithDeadline </td>
<td>(</td>
<td class="paramtype">mach_msg_header_t *&#160;</td>
<td class="paramname"><em>message</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">mach_msg_option_t&#160;</td>
<td class="paramname"><em>options</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">mach_msg_size_t&#160;</td>
<td class="paramname"><em>receive_size</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">mach_port_name_t&#160;</td>
<td class="paramname"><em>receive_port</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacecrashpad.html#a34f36473e385b19eb229798ab2f7210c">MachMessageDeadline</a>&#160;</td>
<td class="paramname"><em>deadline</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">mach_port_name_t&#160;</td>
<td class="paramname"><em>notify_port</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>run_even_if_expired</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Runs <code>mach_msg()</code> with a deadline, as opposed to a timeout. </p>
<p>This function is similar to <code>mach_msg()</code>, with the following differences:</p><ul>
<li>The <code>timeout</code> parameter has been replaced by <em>deadline</em>. The deadline applies uniformly to a call that is requested to both send and receive a message.</li>
<li>The <code>MACH_SEND_TIMEOUT</code> and <code>MACH_RCV_TIMEOUT</code> bits in <em>options</em> are not used. Timeouts are specified by the <em>deadline</em> argument.</li>
<li>The <code>send_size</code> parameter has been removed. Its value is implied by <em>message</em> when <em>options</em> contains <code>MACH_SEND_MSG</code>.</li>
<li>The <em>run_even_if_expired</em> parameter has been added.</li>
</ul>
<p>Like the <code>mach_msg()</code> wrapper in <code>libsyscall</code>, this function will retry operations when experiencing <code>MACH_SEND_INTERRUPTED</code> and <code>MACH_RCV_INTERRUPTED</code>, unless <em>options</em> contains <code>MACH_SEND_INTERRUPT</code> or <code>MACH_RCV_INTERRUPT</code>. Unlike <code>mach_msg()</code>, which restarts the call with the full timeout when this occurs, this function continues enforcing the user-specified <em>deadline</em>.</p>
<p>Except as noted, the parameters and return value are identical to those of <code>mach_msg()</code>.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in,out]</td><td class="paramname">message</td><td></td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">options</td><td></td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">receive_size</td><td></td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">receive_port</td><td></td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">deadline</td><td>The time by which this call should complete. If the deadline is exceeded, this call will return <code>MACH_SEND_TIMED_OUT</code> or <code>MACH_RCV_TIMED_OUT</code>. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">notify_port</td><td></td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">run_even_if_expired</td><td>If <code>true</code>, a deadline that is expired when this function is called will be treated as though a deadline of <a class="el" href="namespacecrashpad.html#af3f950b6030a2822b1780155b38ae9b6a6461bf9de012b5f2305fb3da6d0f82d5" title="MachMessageWithDeadline() should not block at all in its operation.">kMachMessageDeadlineNonblocking</a> had been specified. When <code>false</code>, an expired deadline will result in a <code>MACH_SEND_TIMED_OUT</code> or <code>MACH_RCV_TIMED_OUT</code> return value, even if the deadline is already expired when the function is called.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The return value of <code>mach_msg()</code> </dd></dl>
</div>
</div>
<a id="a79ee9764b34c0267b58f54404946275a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a79ee9764b34c0267b58f54404946275a">&#9670;&nbsp;</a></span>MachThreadSelf()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">thread_t crashpad::MachThreadSelf </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Like <code>mach_thread_self()</code>, but without the obligation to release the send right. </p>
<p><code>mach_thread_self()</code> returns a send right to the current thread port, incrementing its reference count. This burdens the caller with maintaining this send right, and calling <code>mach_port_deallocate()</code> when it is no longer needed. This is burdensome, and is at odds with the normal operation of <code>mach_task_self()</code>, which does not increment the task port’s reference count whose result must not be deallocated.</p>
<p>Callers can use this function in preference to <code>mach_thread_self()</code>. This function returns an extant reference to the current thread’s port without incrementing its reference count.</p>
<dl class="section return"><dt>Returns</dt><dd>The value of <code>mach_thread_self()</code> without incrementing its reference count. The returned port must not be deallocated by <code>mach_port_deallocate()</code>. The returned value is valid as long as the thread continues to exist as a <code>pthread_t</code>. </dd></dl>
</div>
</div>
<a id="a71c79500b827d06b190e30b7cc016c35"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a71c79500b827d06b190e30b7cc016c35">&#9670;&nbsp;</a></span>MacModelAndBoard()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void crashpad::MacModelAndBoard </td>
<td>(</td>
<td class="paramtype">std::string *&#160;</td>
<td class="paramname"><em>model</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::string *&#160;</td>
<td class="paramname"><em>board_id</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the model name and board ID of the running system. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[out]</td><td class="paramname">model</td><td>The system’s model name. A mid-2012 15" MacBook Pro would report “MacBookPro10,1”. </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">board_id</td><td>The system’s board ID. A mid-2012 15" MacBook Pro would report “Mac-C3EC7CD22292981F”.</td></tr>
</table>
</dd>
</dl>
<p>If a value cannot be determined, its string is cleared. </p>
</div>
</div>
<a id="ab05052e02f3c3605fd7bae0f006d2cba"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab05052e02f3c3605fd7bae0f006d2cba">&#9670;&nbsp;</a></span>MacOSXMinorVersion()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int crashpad::MacOSXMinorVersion </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the version of the running operating system. </p>
<dl class="section return"><dt>Returns</dt><dd>The minor version of the operating system, such as <code>12</code> for macOS 10.12.1.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>This is similar to the base::mac::IsOS*() family of functions, but is provided for situations where the caller needs to obtain version information beyond what is provided by Chromium’s base, or for when the caller needs the actual minor version value. </dd></dl>
</div>
</div>
<a id="a99a833f0c39ce203b49862367494a923"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a99a833f0c39ce203b49862367494a923">&#9670;&nbsp;</a></span>MacOSXVersion()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool crashpad::MacOSXVersion </td>
<td>(</td>
<td class="paramtype">int *&#160;</td>
<td class="paramname"><em>major</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int *&#160;</td>
<td class="paramname"><em>minor</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int *&#160;</td>
<td class="paramname"><em>bugfix</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::string *&#160;</td>
<td class="paramname"><em>build</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool *&#160;</td>
<td class="paramname"><em>server</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::string *&#160;</td>
<td class="paramname"><em>version_string</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the version of the running operating system. </p>
<p>All parameters are required. No parameter may be <code>nullptr</code>.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[out]</td><td class="paramname">major</td><td>The major version of the operating system, such as <code>10</code> for macOS 10.12.1. </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">minor</td><td>The major version of the operating system, such as <code>12</code> for macOS 10.12.1. </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">bugfix</td><td>The bugfix version of the operating system, such as <code>1</code> for macOS 10.12.1. </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">build</td><td>The operating system’s build string, such as <code>"16B2657"</code> for macOS 10.12.1. </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">server</td><td><code>true</code> for a macOS Server installation, <code>false</code> otherwise (for a desktop/laptop, client, or workstation system). </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">version_string</td><td>A string representing the full operating system version, such as <code>"macOS 10.12.1 (16B2657)"</code>.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><code>true</code> on success, <code>false</code> on failure, with an error message logged. A failure is considered to have occurred if any element could not be determined. When this happens, their values will be untouched, but other values that could be determined will still be set properly. </dd></dl>
</div>
</div>
<a id="a0486df983d8e9cecbe1e46e0059806df"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0486df983d8e9cecbe1e46e0059806df">&#9670;&nbsp;</a></span>MapInsertOrReplace()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
<table class="memname">
<tr>
<td class="memname">bool crashpad::MapInsertOrReplace </td>
<td>(</td>
<td class="paramtype">T *&#160;</td>
<td class="paramname"><em>map</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const typename T::key_type &amp;&#160;</td>
<td class="paramname"><em>key</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const typename T::mapped_type &amp;&#160;</td>
<td class="paramname"><em>value</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">typename T::mapped_type *&#160;</td>
<td class="paramname"><em>old_value</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Inserts a mapping from <em>key</em> to <em>value</em> into <em>map</em>, or replaces an existing mapping so that <em>key</em> maps to <em>value</em>. </p>
<p>This behaves similarly to <code>std::map&lt;&gt;::insert_or_assign()</code> proposed for C++17, except that the <em>old_value</em> parameter is added.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in,out]</td><td class="paramname">map</td><td>The map to operate on. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">key</td><td>The key that should be mapped to <em>value</em>. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">value</td><td>The value that <em>key</em> should map to. </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">old_value</td><td>If <em>key</em> was previously present in <em>map</em>, this will be set to its previous value. This parameter is optional and may be <code>nullptr</code> if this information is not required.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><code>false</code> if <em>key</em> was previously present in <em>map</em>. If <em>old_value</em> is not <code>nullptr</code>, it will be set to the previous value. <code>true</code> if <em>key</em> was not present in the map and was inserted. </dd></dl>
</div>
</div>
<a id="a7e5ef254327bfa348cc23cd21893b29e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7e5ef254327bfa348cc23cd21893b29e">&#9670;&nbsp;</a></span>MoveFileOrDirectory()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool crashpad::MoveFileOrDirectory </td>
<td>(</td>
<td class="paramtype">const base::FilePath &amp;&#160;</td>
<td class="paramname"><em>source</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const base::FilePath &amp;&#160;</td>
<td class="paramname"><em>dest</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Moves a file, symbolic link, or directory, logging a message on failure. </p>
<p><em>source</em> must exist and refer to a file, symbolic link, or directory.</p>
<p><em>source</em> and <em>dest</em> must be on the same filesystem.</p>
<p>If <em>dest</em> exists, it may be overwritten:</p>
<p>If <em>dest</em> exists and refers to a file or to a live or dangling symbolic link to a file, it will be overwritten if <em>source</em> also refers to a file or to a live or dangling symbolic link to a file or directory.</p>
<p>On POSIX, if <em>dest</em> refers to a directory, it will be overwritten only if it is empty and <em>source</em> also refers to a directory.</p>
<p>On Windows, if <em>dest</em> refers to a directory or to a live or dangling symbolic link to a directory, it will not be overwritten.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">source</td><td>The path to the file to be moved. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">dest</td><td>The new path for the file. </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>
</div>
</div>
<a id="a9c9bc6ad9973f794c425707617b63278"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9c9bc6ad9973f794c425707617b63278">&#9670;&nbsp;</a></span>NewMachPort()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">mach_port_t crashpad::NewMachPort </td>
<td>(</td>
<td class="paramtype">mach_port_right_t&#160;</td>
<td class="paramname"><em>right</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Creates a new Mach port in the current task. </p>
<p>This function wraps the <code>mach_port_allocate()</code> providing a simpler interface.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">right</td><td>The type of right to create.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The new Mach port. On failure, <code>MACH_PORT_NULL</code> with a message logged. </dd></dl>
</div>
</div>
<a id="a7987df05e1260e6d8d93ee3a21e9b0eb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7987df05e1260e6d8d93ee3a21e9b0eb">&#9670;&nbsp;</a></span>OpenFileForRead()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="namespacecrashpad.html#a07f8e33c4fdeba3783277f9f2563e48a">FileHandle</a> crashpad::OpenFileForRead </td>
<td>(</td>
<td class="paramtype">const base::FilePath &amp;&#160;</td>
<td class="paramname"><em>path</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Wraps <code>open()</code> or <code>CreateFile()</code>, opening an existing file for reading. </p>
<dl class="section return"><dt>Returns</dt><dd>The newly opened FileHandle, or an invalid FileHandle on failure.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="namespacecrashpad.html#a9daa1b956487883acd9f43d13cc77339" title="Scoped wrapper of a FileHandle.">ScopedFileHandle</a> </dd>
<dd>
<a class="el" href="namespacecrashpad.html#ad8e8848af82384f7757108c8c445f18d" title="Wraps open() or CreateFile(), creating a file for output.">OpenFileForWrite</a> </dd>
<dd>
<a class="el" href="namespacecrashpad.html#abe6238b18be49921772c14dd25a624de" title="Wraps open() or CreateFile(), creating a file for both input and output.">OpenFileForReadAndWrite</a> </dd>
<dd>
<a class="el" href="namespacecrashpad.html#ab3712d59104f641109b170c78a912b4d" title="Wraps OpenFileForRead(), logging an error if the operation fails.">LoggingOpenFileForRead</a> </dd></dl>
</div>
</div>
<a id="abe6238b18be49921772c14dd25a624de"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abe6238b18be49921772c14dd25a624de">&#9670;&nbsp;</a></span>OpenFileForReadAndWrite()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="namespacecrashpad.html#a07f8e33c4fdeba3783277f9f2563e48a">FileHandle</a> crashpad::OpenFileForReadAndWrite </td>
<td>(</td>
<td class="paramtype">const base::FilePath &amp;&#160;</td>
<td class="paramname"><em>path</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacecrashpad.html#afa69b0967d9a6df659ff5d2a02ff3e51">FileWriteMode</a>&#160;</td>
<td class="paramname"><em>mode</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacecrashpad.html#a034ccc90eb0d1f587ee89275d822175d">FilePermissions</a>&#160;</td>
<td class="paramname"><em>permissions</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Wraps <code>open()</code> or <code>CreateFile()</code>, creating a file for both input and output. </p>
<p><em>mode</em> determines the style (truncate, reuse, etc.) that is used to open the file. On POSIX, <em>permissions</em> determines the value that is passed as <code>mode</code> to <code>open()</code>. On Windows, the file is always opened in binary mode (that is, no CRLF translation). On Windows, the file is opened for sharing, see <a class="el" href="namespacecrashpad.html#acd02263566d8c43fc7886f88a13b364f" title="Locks the given file using flock() on POSIX or LockFileEx() on Windows.">LoggingLockFile()</a> and <a class="el" href="namespacecrashpad.html#a15c1f3a2c6f04e944fdca12e22b0cb6e" title="Unlocks a file previously locked with LoggingLockFile().">LoggingUnlockFile()</a> to control concurrent access.</p>
<dl class="section return"><dt>Returns</dt><dd>The newly opened FileHandle, or an invalid FileHandle on failure.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="namespacecrashpad.html#a9daa1b956487883acd9f43d13cc77339" title="Scoped wrapper of a FileHandle.">ScopedFileHandle</a> </dd>
<dd>
<a class="el" href="namespacecrashpad.html#a7987df05e1260e6d8d93ee3a21e9b0eb" title="Wraps open() or CreateFile(), opening an existing file for reading.">OpenFileForRead</a> </dd>
<dd>
<a class="el" href="namespacecrashpad.html#ad8e8848af82384f7757108c8c445f18d" title="Wraps open() or CreateFile(), creating a file for output.">OpenFileForWrite</a> </dd>
<dd>
<a class="el" href="namespacecrashpad.html#aab3e964bdba04aaf74e7a27a36efe108" title="Wraps OpenFileForReadAndWrite(), logging an error if the operation fails.">LoggingOpenFileForReadAndWrite</a> </dd></dl>
</div>
</div>
<a id="ad8e8848af82384f7757108c8c445f18d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad8e8848af82384f7757108c8c445f18d">&#9670;&nbsp;</a></span>OpenFileForWrite()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="namespacecrashpad.html#a07f8e33c4fdeba3783277f9f2563e48a">FileHandle</a> crashpad::OpenFileForWrite </td>
<td>(</td>
<td class="paramtype">const base::FilePath &amp;&#160;</td>
<td class="paramname"><em>path</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacecrashpad.html#afa69b0967d9a6df659ff5d2a02ff3e51">FileWriteMode</a>&#160;</td>
<td class="paramname"><em>mode</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacecrashpad.html#a034ccc90eb0d1f587ee89275d822175d">FilePermissions</a>&#160;</td>
<td class="paramname"><em>permissions</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Wraps <code>open()</code> or <code>CreateFile()</code>, creating a file for output. </p>
<p><em>mode</em> determines the style (truncate, reuse, etc.) that is used to open the file. On POSIX, <em>permissions</em> determines the value that is passed as <code>mode</code> to <code>open()</code>. On Windows, the file is always opened in binary mode (that is, no CRLF translation). On Windows, the file is opened for sharing, see <a class="el" href="namespacecrashpad.html#acd02263566d8c43fc7886f88a13b364f" title="Locks the given file using flock() on POSIX or LockFileEx() on Windows.">LoggingLockFile()</a> and <a class="el" href="namespacecrashpad.html#a15c1f3a2c6f04e944fdca12e22b0cb6e" title="Unlocks a file previously locked with LoggingLockFile().">LoggingUnlockFile()</a> to control concurrent access.</p>
<dl class="section return"><dt>Returns</dt><dd>The newly opened FileHandle, or an invalid FileHandle on failure.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="namespacecrashpad.html#a9daa1b956487883acd9f43d13cc77339" title="Scoped wrapper of a FileHandle.">ScopedFileHandle</a> </dd>
<dd>
<a class="el" href="namespacecrashpad.html#a7987df05e1260e6d8d93ee3a21e9b0eb" title="Wraps open() or CreateFile(), opening an existing file for reading.">OpenFileForRead</a> </dd>
<dd>
<a class="el" href="namespacecrashpad.html#abe6238b18be49921772c14dd25a624de" title="Wraps open() or CreateFile(), creating a file for both input and output.">OpenFileForReadAndWrite</a> </dd>
<dd>
<a class="el" href="namespacecrashpad.html#a62fc6876cc0c660f0ea8bd1dd0a07e82" title="Wraps OpenFileForWrite(), logging an error if the operation fails.">LoggingOpenFileForWrite</a> </dd></dl>
</div>
</div>
<a id="a2274adc0459f68b93ffe51d8f975f14e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2274adc0459f68b93ffe51d8f975f14e">&#9670;&nbsp;</a></span>PrepareMIGReplyFromRequest()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void crashpad::PrepareMIGReplyFromRequest </td>
<td>(</td>
<td class="paramtype">const mach_msg_header_t *&#160;</td>
<td class="paramname"><em>in_header</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">mach_msg_header_t *&#160;</td>
<td class="paramname"><em>out_header</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Initializes a reply message for a MIG server routine based on its corresponding request. </p>
<p>If a request is handled by a server routine, it may be necessary to revise some of the fields set by this function, such as <code>msgh_size</code> and any fields defined in a routine’s reply structure type.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">in_header</td><td>The request message to base the reply on. </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">out_header</td><td>The reply message to initialize. <em>out_header</em> will be treated as a <code>mig_reply_error_t*</code> and all of its fields will be set except for <code>RetCode</code>, which must be set by <a class="el" href="namespacecrashpad.html#aa023691aedd4f3e6faa923e8d2095947" title="Sets the error code in a reply message for a MIG server routine.">SetMIGReplyError()</a>. This argument is accepted as a <code>mach_msg_header_t*</code> instead of a <code>mig_reply_error_t*</code> because that is the type that callers are expected to possess in the C API. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a1767bc31528e1f4cfb4070855e6da96d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1767bc31528e1f4cfb4070855e6da96d">&#9670;&nbsp;</a></span>PruneCrashReportDatabase()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">size_t crashpad::PruneCrashReportDatabase </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classcrashpad_1_1CrashReportDatabase.html">CrashReportDatabase</a> *&#160;</td>
<td class="paramname"><em>database</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classcrashpad_1_1PruneCondition.html">PruneCondition</a> *&#160;</td>
<td class="paramname"><em>condition</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Deletes crash reports from <em>database</em> that match <em>condition</em>. </p>
<p>This function can be used to remove old or large reports from the database. The <em>condition</em> will be evaluated against each report in the <em>database</em>, sorted in descending order by <a class="el" href="structcrashpad_1_1CrashReportDatabase_1_1Report.html#a8011cd1a4b4fcd84ecbc21e5c5fd80b8" title="The time at which the report was generated.">CrashReportDatabase::Report::creation_time</a>. This guarantee allows conditions to be stateful.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">database</td><td>The database from which crash reports will be deleted. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">condition</td><td>The condition against which all reports in the database will be evaluated.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The number of deleted crash reports. </dd></dl>
</div>
</div>
<a id="ab15d0aff86a0aafe6f33cbd8913441c7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab15d0aff86a0aafe6f33cbd8913441c7">&#9670;&nbsp;</a></span>RandomString()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::string crashpad::RandomString </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns a random string. </p>
<p>The string consists of 16 uppercase characters chosen at random. The returned string has over 75 bits of randomness (26<sup>16</sup> &gt; 2<sup>75</sup>). </p>
</div>
</div>
<a id="a9c33155413280cfd8ae286e732012ee5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9c33155413280cfd8ae286e732012ee5">&#9670;&nbsp;</a></span>ReadAnnotationsWhitelist()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool crashpad::ReadAnnotationsWhitelist </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classcrashpad_1_1ProcessMemoryRange.html">ProcessMemoryRange</a> &amp;&#160;</td>
<td class="paramname"><em>memory</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>whitelist_address</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::vector&lt; std::string &gt; *&#160;</td>
<td class="paramname"><em>whitelist</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Reads an annotations whitelist from another process. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">memory</td><td>A memory reader for the target process. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">whitelist_address</td><td>The address in the target process' address space of a nullptr terminated array of NUL-terminated strings. </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">whitelist</td><td>The whitelist read, valid only if this function returns <code>true</code>. </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>
</div>
</div>
<a id="a8599600814a17d622766decd5f122a96"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8599600814a17d622766decd5f122a96">&#9670;&nbsp;</a></span>ReadFile()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="namespacecrashpad.html#a25465a3a2d289a06addf93c346c6f917">FileOperationResult</a> crashpad::ReadFile </td>
<td>(</td>
<td class="paramtype"><a class="el" href="namespacecrashpad.html#a07f8e33c4fdeba3783277f9f2563e48a">FileHandle</a>&#160;</td>
<td class="paramname"><em>file</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>buffer</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>size</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Reads from a file, retrying when interrupted before reading any data on POSIX. </p>
<p>This function reads into <em>buffer</em>. Fewer than <em>size</em> bytes may be read. On Windows, reading from sockets is not currently supported.</p>
<dl class="section return"><dt>Returns</dt><dd>The number of bytes read and placed into <em>buffer</em>, or <code>-1</code> on error, with <code>errno</code> or <code>GetLastError()</code> set appropriately. On error, a portion of <em>file</em> may have been read into <em>buffer</em>.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="namespacecrashpad.html#ada530c306bf30e9ed9274c20d05c0db4" title="Writes to a file, retrying when interrupted on POSIX or following a short write.">WriteFile</a> </dd>
<dd>
<a class="el" href="namespacecrashpad.html#a6e685af255d9b71fb46ed2679329dd7c" title="Wraps ReadFile(), retrying following a short read, ensuring that exactly size bytes are read.">ReadFileExactly</a> </dd>
<dd>
<a class="el" href="namespacecrashpad.html#ac3fb8955565f605e08c1e30562fbdb7a" title="Wraps ReadFile(), retrying following a short read, ensuring that exactly size bytes are read.">LoggingReadFileExactly</a> </dd>
<dd>
<a class="el" href="namespacecrashpad.html#a00e03e19185b0fde6301be6b113628cb" title="Wraps ReadFile(), ensuring that exactly size bytes are read.">CheckedReadFileExactly</a> </dd>
<dd>
<a class="el" href="namespacecrashpad.html#ac8e7e1b1a4b89b489964ffee54d0d9df" title="Wraps ReadFile(), ensuring that it indicates end-of-file.">CheckedReadFileAtEOF</a> </dd></dl>
</div>
</div>
<a id="a6e685af255d9b71fb46ed2679329dd7c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6e685af255d9b71fb46ed2679329dd7c">&#9670;&nbsp;</a></span>ReadFileExactly()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool crashpad::ReadFileExactly </td>
<td>(</td>
<td class="paramtype"><a class="el" href="namespacecrashpad.html#a07f8e33c4fdeba3783277f9f2563e48a">FileHandle</a>&#160;</td>
<td class="paramname"><em>file</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>buffer</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>size</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Wraps <a class="el" href="namespacecrashpad.html#a8599600814a17d622766decd5f122a96" title="Reads from a file, retrying when interrupted before reading any data on POSIX.">ReadFile()</a>, retrying following a short read, ensuring that exactly <em>size</em> bytes are read. </p>
<dl class="section return"><dt>Returns</dt><dd><code>true</code> on success. If the underlying <a class="el" href="namespacecrashpad.html#a8599600814a17d622766decd5f122a96" title="Reads from a file, retrying when interrupted before reading any data on POSIX.">ReadFile()</a> fails, or if fewer than <em>size</em> bytes were read, this function logs a message and returns <code>false</code>.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="namespacecrashpad.html#a8a91af9c690d2a280c463596bf82070b" title="Wraps WriteFile(), ensuring that exactly size bytes are written.">LoggingWriteFile</a> </dd>
<dd>
<a class="el" href="namespacecrashpad.html#a8599600814a17d622766decd5f122a96" title="Reads from a file, retrying when interrupted before reading any data on POSIX.">ReadFile</a> </dd>
<dd>
<a class="el" href="namespacecrashpad.html#ac3fb8955565f605e08c1e30562fbdb7a" title="Wraps ReadFile(), retrying following a short read, ensuring that exactly size bytes are read.">LoggingReadFileExactly</a> </dd>
<dd>
<a class="el" href="namespacecrashpad.html#a00e03e19185b0fde6301be6b113628cb" title="Wraps ReadFile(), ensuring that exactly size bytes are read.">CheckedReadFileExactly</a> </dd>
<dd>
<a class="el" href="namespacecrashpad.html#ac8e7e1b1a4b89b489964ffee54d0d9df" title="Wraps ReadFile(), ensuring that it indicates end-of-file.">CheckedReadFileAtEOF</a> </dd></dl>
</div>
</div>
<a id="ae9b85a5beab40e4e0dad138a26faa629"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae9b85a5beab40e4e0dad138a26faa629">&#9670;&nbsp;</a></span>ReadMemoryRangeWhitelist()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool crashpad::ReadMemoryRangeWhitelist </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classcrashpad_1_1ProcessMemoryRange.html">ProcessMemoryRange</a> &amp;&#160;</td>
<td class="paramname"><em>memory</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>whitelist_address</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::vector&lt; std::pair&lt; <a class="el" href="namespacecrashpad.html#af2d003bfc8632755c60ab27bd6d1c8ae">VMAddress</a>, <a class="el" href="namespacecrashpad.html#af2d003bfc8632755c60ab27bd6d1c8ae">VMAddress</a> &gt;&gt; *&#160;</td>
<td class="paramname"><em>whitelist</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Reads a memory range whitelist from another process. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">memory</td><td>A memory reader for the target process. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">whitelist_address</td><td>The address in the target process' address space of a nullptr terminated array of NUL-terminated strings. </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">whitelist</td><td>A list of whitelisted memory regions, valid only if this function returns <code>true</code>. </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>
</div>
</div>
<a id="ae93766162f8810f02d1891951937aede"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae93766162f8810f02d1891951937aede">&#9670;&nbsp;</a></span>ReadThreadIDs()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool crashpad::ReadThreadIDs </td>
<td>(</td>
<td class="paramtype">pid_t&#160;</td>
<td class="paramname"><em>pid</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::vector&lt; pid_t &gt; *&#160;</td>
<td class="paramname"><em>tids</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Enumerates the thread IDs of a process by reading <code>/proc/<em>pid</em>/task</code>. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">pid</td><td>The process ID for which to read thread IDs. </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">tids</td><td>The read thread IDs. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><code>true</code> if the task directory was successfully read. Format errors are logged, but won't cause this function to return <code>false</code>. </dd></dl>
</div>
</div>
<a id="ac86f028e5f175cccfcab418346d7bcfe"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac86f028e5f175cccfcab418346d7bcfe">&#9670;&nbsp;</a></span>ReadXattr()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="namespacecrashpad.html#a589b4d9bd6f2233b67148ab6793c3c13">XattrStatus</a> crashpad::ReadXattr </td>
<td>(</td>
<td class="paramtype">const base::FilePath &amp;&#160;</td>
<td class="paramname"><em>file</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const base::StringPiece &amp;&#160;</td>
<td class="paramname"><em>name</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::string *&#160;</td>
<td class="paramname"><em>value</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Reads an extended attribute on a file. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">file</td><td>The path to the file. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">name</td><td>The name of the extended attribute to read. </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">value</td><td>The value of the attribute.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>XattrStatus </dd></dl>
</div>
</div>
<a id="ab8c682ff6d5f00ca828640a72436e196"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab8c682ff6d5f00ca828640a72436e196">&#9670;&nbsp;</a></span>ReadXattrBool()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="namespacecrashpad.html#a589b4d9bd6f2233b67148ab6793c3c13">XattrStatus</a> crashpad::ReadXattrBool </td>
<td>(</td>
<td class="paramtype">const base::FilePath &amp;&#160;</td>
<td class="paramname"><em>file</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const base::StringPiece &amp;&#160;</td>
<td class="paramname"><em>name</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool *&#160;</td>
<td class="paramname"><em>value</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Reads an extended attribute on a file. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">file</td><td>The path to the file. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">name</td><td>The name of the extended attribute to read. </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">value</td><td>The value of the attribute.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>XattrStatus</dd></dl>
<p>Only the values <code>"0"</code> and <code>"1"</code>, for <code>false</code> and <code>true</code> respectively, are valid conversions. </p>
</div>
</div>
<a id="a0c28700ce2629c13b5b8bb1392625ef4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0c28700ce2629c13b5b8bb1392625ef4">&#9670;&nbsp;</a></span>ReadXattrInt()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="namespacecrashpad.html#a589b4d9bd6f2233b67148ab6793c3c13">XattrStatus</a> crashpad::ReadXattrInt </td>
<td>(</td>
<td class="paramtype">const base::FilePath &amp;&#160;</td>
<td class="paramname"><em>file</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const base::StringPiece &amp;&#160;</td>
<td class="paramname"><em>name</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int *&#160;</td>
<td class="paramname"><em>value</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Reads an extended attribute on a file. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">file</td><td>The path to the file. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">name</td><td>The name of the extended attribute to read. </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">value</td><td>The value of the attribute.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>XattrStatus </dd></dl>
</div>
</div>
<a id="a71572c94f27aba3f34938d3a0d9030a3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a71572c94f27aba3f34938d3a0d9030a3">&#9670;&nbsp;</a></span>ReadXattrTimeT()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="namespacecrashpad.html#a589b4d9bd6f2233b67148ab6793c3c13">XattrStatus</a> crashpad::ReadXattrTimeT </td>
<td>(</td>
<td class="paramtype">const base::FilePath &amp;&#160;</td>
<td class="paramname"><em>file</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const base::StringPiece &amp;&#160;</td>
<td class="paramname"><em>name</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">time_t *&#160;</td>
<td class="paramname"><em>value</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Reads an extended attribute on a file. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">file</td><td>The path to the file. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">name</td><td>The name of the extended attribute to read. </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">value</td><td>The value of the attribute.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>XattrStatus </dd></dl>
</div>
</div>
<a id="ad20301f0c5158576b0893444ff662108"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad20301f0c5158576b0893444ff662108">&#9670;&nbsp;</a></span>RecordFileLimitAnnotation()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void crashpad::RecordFileLimitAnnotation </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Records a <code>"file-limits"</code> simple annotation for the process. </p>
<p>This annotation will be used to confirm the theory that certain crashes are caused by systems at or near their file descriptor table size limits.</p>
<p>The format of the annotation is four comma-separated values: the system-wide <code>kern.num_files</code> and <code>kern.maxfiles</code> values from <code>sysctl()</code>, and the process-specific current and maximum file descriptor limits from <code>getrlimit(RLIMIT_NOFILE, …)</code>.</p>
<p>See <a href="https://crashpad.chromium.org/bug/180">https://crashpad.chromium.org/bug/180</a>.</p>
<p>TODO(mark): Remove this annotation after sufficient data has been collected for analysis. </p>
</div>
</div>
<a id="a61b73837f43334046a1b56763fefba55"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a61b73837f43334046a1b56763fefba55">&#9670;&nbsp;</a></span>ReinterpretBytes()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename From , typename To &gt; </div>
<table class="memname">
<tr>
<td class="memname">bool crashpad::ReinterpretBytes </td>
<td>(</td>
<td class="paramtype">const From &amp;&#160;</td>
<td class="paramname"><em>from</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">To *&#160;</td>
<td class="paramname"><em>to</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Copies the bytes of <em>from</em> to <em>to</em>. </p>
<p>This function is similar to <code>bit_cast</code>, except that it can operate on differently sized types.</p>
<dl class="section return"><dt>Returns</dt><dd><code>true</code> if the copy is possible without information loss, otherwise <code>false</code> with a message logged. </dd></dl>
</div>
</div>
<a id="a354d84b9ce60fa7d437c2ee6f58ea05f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a354d84b9ce60fa7d437c2ee6f58ea05f">&#9670;&nbsp;</a></span>RemoveXattr()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="namespacecrashpad.html#a589b4d9bd6f2233b67148ab6793c3c13">XattrStatus</a> crashpad::RemoveXattr </td>
<td>(</td>
<td class="paramtype">const base::FilePath &amp;&#160;</td>
<td class="paramname"><em>file</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const base::StringPiece &amp;&#160;</td>
<td class="paramname"><em>name</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Removes an extended attribute from a file. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">file</td><td>The path to the file. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">name</td><td>The name of the extended attribute to remove.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>XattrStatus </dd></dl>
</div>
</div>
<a id="ad8efd0f50febdf3c8461fb93de8191f7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad8efd0f50febdf3c8461fb93de8191f7">&#9670;&nbsp;</a></span>SafeTerminateProcess()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool crashpad::SafeTerminateProcess </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">UINT&#160;</td>
<td class="paramname"><em>exit_code</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">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Calls <code>TerminateProcess()</code>. </p>
<p><code>TerminateProcess()</code> has been observed in the wild as being patched badly on 32-bit x86: it’s patched with code adhering to the <code>cdecl</code> (caller clean-up) convention, although it’s supposed to be <code>stdcall</code> (callee clean-up). The mix-up means that neither caller nor callee perform parameter clean-up from the stack, causing the stack pointer to have an unexpected value on return from the patched function. This typically results in a crash shortly thereafter. See <a href="https://crashpad.chromium.org/bug/179">Crashpad bug 179</a>.</p>
<p>On 32-bit x86, this replacement function calls <code>TerminateProcess()</code> without making any assumptions about the stack pointer on its return. As such, it’s compatible with the badly patched <code>cdecl</code> version as well as the native <code>stdcall</code> version (and other less badly patched versions).</p>
<p>Elsewhere, this function calls <code>TerminateProcess()</code> directly without any additional fanfare.</p>
<p>Call this function instead of <code>TerminateProcess()</code> anywhere that <code>TerminateProcess()</code> would normally be called. </p>
</div>
</div>
<a id="a638d7916642f81df8063d300f08ff2ca"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a638d7916642f81df8063d300f08ff2ca">&#9670;&nbsp;</a></span>SendToCrashHandlerServer()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool crashpad::SendToCrashHandlerServer </td>
<td>(</td>
<td class="paramtype">const base::string16 &amp;&#160;</td>
<td class="paramname"><em>pipe_name</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structcrashpad_1_1ClientToServerMessage.html">ClientToServerMessage</a> &amp;&#160;</td>
<td class="paramname"><em>message</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="unioncrashpad_1_1ServerToClientMessage.html">ServerToClientMessage</a> *&#160;</td>
<td class="paramname"><em>response</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Connect over the given <em>pipe_name</em>, passing <em>message</em> to the server, storing the server's reply into <em>response</em>. </p>
<p>Typically clients will not use this directly, instead using CrashpadClient::SetHandler().</p>
<dl class="section see"><dt>See also</dt><dd>CrashpadClient::SetHandler() </dd></dl>
</div>
</div>
<a id="aead5f04bd94549956a7f2826aeccf495"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aead5f04bd94549956a7f2826aeccf495">&#9670;&nbsp;</a></span>ServiceManagementIsJobLoaded()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool crashpad::ServiceManagementIsJobLoaded </td>
<td>(</td>
<td class="paramtype">const std::string &amp;&#160;</td>
<td class="paramname"><em>label</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Determines whether a specified job is loaded in the user launchd domain. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">label</td><td>The label for the job to look up.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><code>true</code> if the job is loaded, otherwise <code>false</code>.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>A loaded job is not necessarily presently running, nor has it necessarily ever run in the past. </dd>
<dd>
This function is provided because <code>SMJobCopyDictionary()</code> is deprecated in OS X 10.10. It may or may not be implemented using <code>SMJobCopyDictionary()</code> from <code>ServiceManagement.framework</code>. </dd></dl>
</div>
</div>
<a id="a3bc3a94386dd27968d48619f42154463"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3bc3a94386dd27968d48619f42154463">&#9670;&nbsp;</a></span>ServiceManagementIsJobRunning()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">pid_t crashpad::ServiceManagementIsJobRunning </td>
<td>(</td>
<td class="paramtype">const std::string &amp;&#160;</td>
<td class="paramname"><em>label</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Determines whether a specified job is running in the user launchd domain. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">label</td><td>The label for the job to look up.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The job’s process ID if running, otherwise <code>0</code>.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>This function is provided because <code>SMJobCopyDictionary()</code> is deprecated in OS X 10.10. It may or may not be implemented using <code>SMJobCopyDictionary()</code> from <code>ServiceManagement.framework</code>. </dd></dl>
</div>
</div>
<a id="a8cc130fecf996b7d7c76a56200afccb1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8cc130fecf996b7d7c76a56200afccb1">&#9670;&nbsp;</a></span>ServiceManagementRemoveJob()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool crashpad::ServiceManagementRemoveJob </td>
<td>(</td>
<td class="paramtype">const std::string &amp;&#160;</td>
<td class="paramname"><em>label</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>wait</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Removes a job from the user launchd domain as in <code>SMJobRemove()</code>. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">label</td><td>The label for the job to remove. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">wait</td><td><code>true</code> if this function should block, waiting for the job to be removed. <code>false</code> if the job may be removed asynchronously.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><code>true</code> if the job was removed successfully or if an asynchronous attempt to remove the job was started successfully, otherwise <code>false</code>.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>This function is provided because <code>SMJobRemove()</code> is deprecated in OS X 10.10. On OS X 10.10, observed in DP8 14A361c, it also blocks for far too long (<code>_block_until_job_exits()</code> contains a one-second <code>sleep()</code>, filed as radar 18398683) and does not signal failure via its return value when asked to remove a nonexistent job (filed as radar 18268941). </dd></dl>
</div>
</div>
<a id="a97ebbbac4c7f27e2e3ba2b9c080ed0f3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a97ebbbac4c7f27e2e3ba2b9c080ed0f3">&#9670;&nbsp;</a></span>ServiceManagementSubmitJob()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool crashpad::ServiceManagementSubmitJob </td>
<td>(</td>
<td class="paramtype">CFDictionaryRef&#160;</td>
<td class="paramname"><em>job_cf</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Submits a job to the user launchd domain as in <code>SMJobSubmit()</code>. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">job_cf</td><td>A dictionary describing a job.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><code>true</code> if the job was submitted successfully, otherwise <code>false</code>.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>This function is provided because <code>SMJobSubmit()</code> is deprecated in OS X 10.10. It may or may not be implemented using <code>SMJobSubmit()</code> from <code>ServiceManagement.framework</code>. </dd></dl>
</div>
</div>
<a id="aa023691aedd4f3e6faa923e8d2095947"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa023691aedd4f3e6faa923e8d2095947">&#9670;&nbsp;</a></span>SetMIGReplyError()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void crashpad::SetMIGReplyError </td>
<td>(</td>
<td class="paramtype">mach_msg_header_t *&#160;</td>
<td class="paramname"><em>out_header</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">kern_return_t&#160;</td>
<td class="paramname"><em>error</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Sets the error code in a reply message for a MIG server routine. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in,out]</td><td class="paramname">out_header</td><td>The reply message to operate on. <em>out_header</em> will be treated as a <code>mig_reply_error_t*</code> and its <code>RetCode</code> field will be set. This argument is accepted as a <code>mach_msg_header_t*</code> instead of a <code>mig_reply_error_t*</code> because that is the type that callers are expected to possess in the C API. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">error</td><td>The error code to store in <em>out_header</em>.</td></tr>
</table>
</dd>
</dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="namespacecrashpad.html#a2274adc0459f68b93ffe51d8f975f14e" title="Initializes a reply message for a MIG server routine based on its corresponding request.">PrepareMIGReplyFromRequest()</a> </dd></dl>
</div>
</div>
<a id="a97b946d80de148d1fd2452af38b220f4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a97b946d80de148d1fd2452af38b220f4">&#9670;&nbsp;</a></span>SignalToString()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::string crashpad::SignalToString </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>signal</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacecrashpad.html#a0f13feba965ef7750b3d49064936e5ee">SymbolicConstantToStringOptions</a>&#160;</td>
<td class="paramname"><em>options</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Converts a POSIX signal value to a textual representation. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">signal</td><td>The signal value to convert. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">options</td><td>Options affecting the conversion. <a class="el" href="namespacecrashpad.html#a7856b82b71167792ea6103debb5105eda18aa149c3471a5129274df2af6972f04" title="Use | to combine values in a bitfield.">kUseOr</a> is ignored. For <a class="el" href="namespacecrashpad.html#a7856b82b71167792ea6103debb5105edaf9da07820c9857c86422b70c3cc33c12" title="If no symbolic name is known for a given constant, return a numeric string.">kUnknownIsNumeric</a>, the format is <code>"%d"</code>.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The converted string. </dd></dl>
</div>
</div>
<a id="a45a44a5552e00ceaf0917f94433ac104"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a45a44a5552e00ceaf0917f94433ac104">&#9670;&nbsp;</a></span>SimulateCrash()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void crashpad::SimulateCrash </td>
<td>(</td>
<td class="paramtype">const NativeCPUContext &amp;&#160;</td>
<td class="paramname"><em>cpu_context</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Simulates a exception without crashing. </p>
<p>This function searches for an <code>EXC_CRASH</code> handler in the same manner that the kernel does, and sends it an exception message to that handler in the format that the handler expects, considering the behavior and thread state flavor that are registered for it. The exception sent to the handler will be <a class="el" href="namespacecrashpad.html#a9e0a6740778f04fe2d190dbcd080d55b" title="An exception type to use for simulated exceptions.">kMachExceptionSimulated</a>, not <code>EXC_CRASH</code>.</p>
<p>Typically, the <a class="el" href="simulate__crash__linux_8h.html#a0ac6f4df5ed356f04dd12be3f07f9ed2" title="Captures the CPU context and simulates an exception without crashing.">CRASHPAD_SIMULATE_CRASH()</a> macro will be used in preference to this function, because it combines the context-capture operation with the raising of a simulated exception.</p>
<p>This function returns normally after the exception message is processed. If no valid handler was found, or no handler processed the exception successfully, a warning will be logged, but these conditions are not considered fatal.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">cpu_context</td><td>The thread state to pass to the exception handler as the exception context, provided that it is compatible with the thread state flavor that the exception handler accepts. If it is not compatible, the correct thread state for the handler will be obtained by calling <code>thread_get_state()</code>. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a8f1db976c6e43d3731c26df569368592"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8f1db976c6e43d3731c26df569368592">&#9670;&nbsp;</a></span>SleepNanoseconds()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void crashpad::SleepNanoseconds </td>
<td>(</td>
<td class="paramtype">uint64_t&#160;</td>
<td class="paramname"><em>nanoseconds</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Sleeps for the specified duration. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">nanoseconds</td><td>The number of nanoseconds to sleep. The actual sleep may be slightly longer due to latencies and timer resolution.</td></tr>
</table>
</dd>
</dl>
<p>On POSIX, this function is resilient against the underlying <code>nanosleep()</code> system call being interrupted by a signal. </p>
</div>
</div>
<a id="abb5d05de37d3f1a92ce36c3ce37842b7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abb5d05de37d3f1a92ce36c3ce37842b7">&#9670;&nbsp;</a></span>SplitString()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::vector&lt; std::string &gt; crashpad::SplitString </td>
<td>(</td>
<td class="paramtype">const std::string &amp;&#160;</td>
<td class="paramname"><em>string</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">char&#160;</td>
<td class="paramname"><em>delimiter</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Splits a string into multiple parts on the given delimiter. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">string</td><td>The string to split. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">delimiter</td><td>The delimiter to split at.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The individual parts of the string. </dd></dl>
</div>
</div>
<a id="a1b3aaf00fdc6fef366afb2a00062c97f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1b3aaf00fdc6fef366afb2a00062c97f">&#9670;&nbsp;</a></span>SplitStringFirst()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool crashpad::SplitStringFirst </td>
<td>(</td>
<td class="paramtype">const std::string &amp;&#160;</td>
<td class="paramname"><em>string</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">char&#160;</td>
<td class="paramname"><em>delimiter</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::string *&#160;</td>
<td class="paramname"><em>left</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::string *&#160;</td>
<td class="paramname"><em>right</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Splits a string into two parts at the first delimiter found. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">string</td><td>The string to split. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">delimiter</td><td>The delimiter to split at. </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">left</td><td>The portion of <em>string</em> up to, but not including, the first <em>delimiter</em> character. </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">right</td><td>The portion of <em>string</em> after the first <em>delimiter</em> character.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><code>true</code> if <em>string</em> was split successfully. <code>false</code> if <em>string</em> did not contain a <em>delimiter</em> character or began with a <em>delimiter</em> character. </dd></dl>
</div>
</div>
<a id="ac6eccc3b9b90d2dd74048a43c9002e88"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac6eccc3b9b90d2dd74048a43c9002e88">&#9670;&nbsp;</a></span>StdioFileHandle()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="namespacecrashpad.html#a07f8e33c4fdeba3783277f9f2563e48a">FileHandle</a> crashpad::StdioFileHandle </td>
<td>(</td>
<td class="paramtype"><a class="el" href="namespacecrashpad.html#a8402ddae562db04a8daf6bffecaded5b">StdioStream</a>&#160;</td>
<td class="paramname"><em>stdio_stream</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns a FileHandle corresponding to the requested standard I/O stream. </p>
<p>The returned FileHandle should not be closed on POSIX, where it is important to maintain valid file descriptors occupying the slots reserved for these streams. If a need to close such a stream arises on POSIX, <code>dup2()</code> should instead be used to replace the existing file descriptor with one opened to <code>/dev/null</code>. See <a class="el" href="namespacecrashpad.html#aa8a3145ce95463d1638428b2547cde4d" title="Closes stdin and stdout by opening /dev/null over them.">CloseStdinAndStdout()</a>.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">stdio_stream</td><td>The requested standard I/O stream.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A corresponding FileHandle on success. kInvalidFileHandle on error, with a message logged. </dd></dl>
</div>
</div>
<a id="a229a9b5ddd24c6722e413e6132d0acf0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a229a9b5ddd24c6722e413e6132d0acf0">&#9670;&nbsp;</a></span>StringToException()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool crashpad::StringToException </td>
<td>(</td>
<td class="paramtype">const base::StringPiece &amp;&#160;</td>
<td class="paramname"><em>string</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacecrashpad.html#a14f1de509869f929122998a2f88f08a6">StringToSymbolicConstantOptions</a>&#160;</td>
<td class="paramname"><em>options</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">exception_type_t *&#160;</td>
<td class="paramname"><em>exception</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Converts a string to its corresponding Mach exception value. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">string</td><td>The string to convert. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">options</td><td>Options affecting the conversion. <a class="el" href="namespacecrashpad.html#a8387ad067a7e6a1735ab97a1af450d2ba060cbf403d47785a69b249e9c562f410" title="Allow | to combine values in a bitfield.">kAllowOr</a> is ignored. </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">exception</td><td>The converted Mach exception value.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><code>true</code> on success, <code>false</code> if <em>string</em> could not be converted as requested. </dd></dl>
</div>
</div>
<a id="a957c7de6eb716bf1662c08333b1f7e21"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a957c7de6eb716bf1662c08333b1f7e21">&#9670;&nbsp;</a></span>StringToExceptionBehavior()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool crashpad::StringToExceptionBehavior </td>
<td>(</td>
<td class="paramtype">const base::StringPiece &amp;&#160;</td>
<td class="paramname"><em>string</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacecrashpad.html#a14f1de509869f929122998a2f88f08a6">StringToSymbolicConstantOptions</a>&#160;</td>
<td class="paramname"><em>options</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">exception_behavior_t *&#160;</td>
<td class="paramname"><em>behavior</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Converts a string to its corresponding Mach exception behavior value. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">string</td><td>The string to convert. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">options</td><td>Options affecting the conversion. <a class="el" href="namespacecrashpad.html#a8387ad067a7e6a1735ab97a1af450d2ba060cbf403d47785a69b249e9c562f410" title="Allow | to combine values in a bitfield.">kAllowOr</a> is ignored. <code>MACH_EXCEPTION_CODES</code> can always be ORed in, but no other values can be ORed with each other. </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">behavior</td><td>The converted Mach exception behavior value.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><code>true</code> on success, <code>false</code> if <em>string</em> could not be converted as requested. </dd></dl>
</div>
</div>
<a id="a7ab63868a738f3bfd4d2449e60607dec"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7ab63868a738f3bfd4d2449e60607dec">&#9670;&nbsp;</a></span>StringToExceptionMask()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool crashpad::StringToExceptionMask </td>
<td>(</td>
<td class="paramtype">const base::StringPiece &amp;&#160;</td>
<td class="paramname"><em>string</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacecrashpad.html#a14f1de509869f929122998a2f88f08a6">StringToSymbolicConstantOptions</a>&#160;</td>
<td class="paramname"><em>options</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">exception_mask_t *&#160;</td>
<td class="paramname"><em>exception_mask</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Converts a string to its corresponding Mach exception mask value. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">string</td><td>The string to convert. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">options</td><td>Options affecting the conversion. <a class="el" href="namespacecrashpad.html#a8387ad067a7e6a1735ab97a1af450d2ba060cbf403d47785a69b249e9c562f410" title="Allow | to combine values in a bitfield.">kAllowOr</a> is honored. </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">exception_mask</td><td>The converted Mach exception mask value.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><code>true</code> on success, <code>false</code> if <em>string</em> could not be converted as requested. </dd></dl>
</div>
</div>
<a id="a32029d4f41770a8fafb8efdc896e5e4d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a32029d4f41770a8fafb8efdc896e5e4d">&#9670;&nbsp;</a></span>StringToNumber() <span class="overload">[1/6]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool crashpad::StringToNumber </td>
<td>(</td>
<td class="paramtype">const std::string &amp;&#160;</td>
<td class="paramname"><em>string</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int *&#160;</td>
<td class="paramname"><em>number</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Convert a string to a number. </p>
<p>A conversion will only be performed if it can be done perfectly: if <em>string</em> contains no leading or trailing characters (including whitespace) other than the number to convert, and does not overflow the targeted data type.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">string</td><td>The string to convert to a number. As in <code>strtol()</code> with a <code>base</code> parameter of <code>0</code>, the string is treated as decimal unless it begins with a <code>"0x"</code> or <code>"0X"</code> prefix, in which case it is treated as hexadecimal, or a <code>"0"</code> prefix, in which case it is treated as octal. </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">number</td><td>The converted number. This will only be set if a perfect conversion can be performed.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><code>true</code> if a perfect conversion could be performed, with <em>number</em> set appropriately. <code>false</code> if a perfect conversion was not possible.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>The interface in <code>base/strings/string_number_conversions.h</code> doesn’t allow arbitrary bases based on whether the string begins with a prefix indicating its base. The functions here are provided for situations where such prefix recognition is desirable. </dd></dl>
</div>
</div>
<a id="a6879fca357a65d0ea93e06a48399a36a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6879fca357a65d0ea93e06a48399a36a">&#9670;&nbsp;</a></span>StringToNumber() <span class="overload">[2/6]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool crashpad::StringToNumber </td>
<td>(</td>
<td class="paramtype">const std::string &amp;&#160;</td>
<td class="paramname"><em>string</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">long *&#160;</td>
<td class="paramname"><em>number</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Convert a string to a number. </p>
<p>A conversion will only be performed if it can be done perfectly: if <em>string</em> contains no leading or trailing characters (including whitespace) other than the number to convert, and does not overflow the targeted data type.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">string</td><td>The string to convert to a number. As in <code>strtol()</code> with a <code>base</code> parameter of <code>0</code>, the string is treated as decimal unless it begins with a <code>"0x"</code> or <code>"0X"</code> prefix, in which case it is treated as hexadecimal, or a <code>"0"</code> prefix, in which case it is treated as octal. </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">number</td><td>The converted number. This will only be set if a perfect conversion can be performed.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><code>true</code> if a perfect conversion could be performed, with <em>number</em> set appropriately. <code>false</code> if a perfect conversion was not possible.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>The interface in <code>base/strings/string_number_conversions.h</code> doesn’t allow arbitrary bases based on whether the string begins with a prefix indicating its base. The functions here are provided for situations where such prefix recognition is desirable. </dd></dl>
</div>
</div>
<a id="a0803f07288b43b385a4cf8f44d9f737c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0803f07288b43b385a4cf8f44d9f737c">&#9670;&nbsp;</a></span>StringToNumber() <span class="overload">[3/6]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool crashpad::StringToNumber </td>
<td>(</td>
<td class="paramtype">const std::string &amp;&#160;</td>
<td class="paramname"><em>string</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">long long *&#160;</td>
<td class="paramname"><em>number</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Convert a string to a number. </p>
<p>A conversion will only be performed if it can be done perfectly: if <em>string</em> contains no leading or trailing characters (including whitespace) other than the number to convert, and does not overflow the targeted data type.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">string</td><td>The string to convert to a number. As in <code>strtol()</code> with a <code>base</code> parameter of <code>0</code>, the string is treated as decimal unless it begins with a <code>"0x"</code> or <code>"0X"</code> prefix, in which case it is treated as hexadecimal, or a <code>"0"</code> prefix, in which case it is treated as octal. </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">number</td><td>The converted number. This will only be set if a perfect conversion can be performed.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><code>true</code> if a perfect conversion could be performed, with <em>number</em> set appropriately. <code>false</code> if a perfect conversion was not possible.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>The interface in <code>base/strings/string_number_conversions.h</code> doesn’t allow arbitrary bases based on whether the string begins with a prefix indicating its base. The functions here are provided for situations where such prefix recognition is desirable. </dd></dl>
</div>
</div>
<a id="abc8d160b70c0f608add225d2be928f7c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abc8d160b70c0f608add225d2be928f7c">&#9670;&nbsp;</a></span>StringToNumber() <span class="overload">[4/6]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool crashpad::StringToNumber </td>
<td>(</td>
<td class="paramtype">const std::string &amp;&#160;</td>
<td class="paramname"><em>string</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">unsigned int *&#160;</td>
<td class="paramname"><em>number</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Convert a string to a number. </p>
<p>A conversion will only be performed if it can be done perfectly: if <em>string</em> contains no leading or trailing characters (including whitespace) other than the number to convert, and does not overflow the targeted data type.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">string</td><td>The string to convert to a number. As in <code>strtol()</code> with a <code>base</code> parameter of <code>0</code>, the string is treated as decimal unless it begins with a <code>"0x"</code> or <code>"0X"</code> prefix, in which case it is treated as hexadecimal, or a <code>"0"</code> prefix, in which case it is treated as octal. </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">number</td><td>The converted number. This will only be set if a perfect conversion can be performed.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><code>true</code> if a perfect conversion could be performed, with <em>number</em> set appropriately. <code>false</code> if a perfect conversion was not possible.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>The interface in <code>base/strings/string_number_conversions.h</code> doesn’t allow arbitrary bases based on whether the string begins with a prefix indicating its base. The functions here are provided for situations where such prefix recognition is desirable. </dd></dl>
</div>
</div>
<a id="ad91f5fe164e391c950c3e3a456f5f008"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad91f5fe164e391c950c3e3a456f5f008">&#9670;&nbsp;</a></span>StringToNumber() <span class="overload">[5/6]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool crashpad::StringToNumber </td>
<td>(</td>
<td class="paramtype">const std::string &amp;&#160;</td>
<td class="paramname"><em>string</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">unsigned long *&#160;</td>
<td class="paramname"><em>number</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Convert a string to a number. </p>
<p>A conversion will only be performed if it can be done perfectly: if <em>string</em> contains no leading or trailing characters (including whitespace) other than the number to convert, and does not overflow the targeted data type.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">string</td><td>The string to convert to a number. As in <code>strtol()</code> with a <code>base</code> parameter of <code>0</code>, the string is treated as decimal unless it begins with a <code>"0x"</code> or <code>"0X"</code> prefix, in which case it is treated as hexadecimal, or a <code>"0"</code> prefix, in which case it is treated as octal. </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">number</td><td>The converted number. This will only be set if a perfect conversion can be performed.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><code>true</code> if a perfect conversion could be performed, with <em>number</em> set appropriately. <code>false</code> if a perfect conversion was not possible.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>The interface in <code>base/strings/string_number_conversions.h</code> doesn’t allow arbitrary bases based on whether the string begins with a prefix indicating its base. The functions here are provided for situations where such prefix recognition is desirable. </dd></dl>
</div>
</div>
<a id="aca97fc8e5a3b10053b624bf9b8ac65c4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aca97fc8e5a3b10053b624bf9b8ac65c4">&#9670;&nbsp;</a></span>StringToNumber() <span class="overload">[6/6]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool crashpad::StringToNumber </td>
<td>(</td>
<td class="paramtype">const std::string &amp;&#160;</td>
<td class="paramname"><em>string</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">unsigned long long *&#160;</td>
<td class="paramname"><em>number</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Convert a string to a number. </p>
<p>A conversion will only be performed if it can be done perfectly: if <em>string</em> contains no leading or trailing characters (including whitespace) other than the number to convert, and does not overflow the targeted data type.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">string</td><td>The string to convert to a number. As in <code>strtol()</code> with a <code>base</code> parameter of <code>0</code>, the string is treated as decimal unless it begins with a <code>"0x"</code> or <code>"0X"</code> prefix, in which case it is treated as hexadecimal, or a <code>"0"</code> prefix, in which case it is treated as octal. </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">number</td><td>The converted number. This will only be set if a perfect conversion can be performed.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><code>true</code> if a perfect conversion could be performed, with <em>number</em> set appropriately. <code>false</code> if a perfect conversion was not possible.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>The interface in <code>base/strings/string_number_conversions.h</code> doesn’t allow arbitrary bases based on whether the string begins with a prefix indicating its base. The functions here are provided for situations where such prefix recognition is desirable. </dd></dl>
</div>
</div>
<a id="a6249dd58c6a81b300d64b25a943fa25c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6249dd58c6a81b300d64b25a943fa25c">&#9670;&nbsp;</a></span>StringToSignal()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool crashpad::StringToSignal </td>
<td>(</td>
<td class="paramtype">const base::StringPiece &amp;&#160;</td>
<td class="paramname"><em>string</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacecrashpad.html#a14f1de509869f929122998a2f88f08a6">StringToSymbolicConstantOptions</a>&#160;</td>
<td class="paramname"><em>options</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int *&#160;</td>
<td class="paramname"><em>signal</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Converts a string to its corresponding POSIX signal value. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">string</td><td>The string to convert. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">options</td><td>Options affecting the conversion. <a class="el" href="namespacecrashpad.html#a8387ad067a7e6a1735ab97a1af450d2ba060cbf403d47785a69b249e9c562f410" title="Allow | to combine values in a bitfield.">kAllowOr</a> is ignored. </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">signal</td><td>The converted POSIX signal value.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><code>true</code> on success, <code>false</code> if <em>string</em> could not be converted as requested. </dd></dl>
</div>
</div>
<a id="a2fdb1f659a2813e80d5b644020a44208"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2fdb1f659a2813e80d5b644020a44208">&#9670;&nbsp;</a></span>StringToThreadStateFlavor()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool crashpad::StringToThreadStateFlavor </td>
<td>(</td>
<td class="paramtype">const base::StringPiece &amp;&#160;</td>
<td class="paramname"><em>string</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacecrashpad.html#a14f1de509869f929122998a2f88f08a6">StringToSymbolicConstantOptions</a>&#160;</td>
<td class="paramname"><em>options</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">thread_state_flavor_t *&#160;</td>
<td class="paramname"><em>flavor</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Converts a string to its corresponding thread state flavor value. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">string</td><td>The string to convert. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">options</td><td>Options affecting the conversion. <a class="el" href="namespacecrashpad.html#a8387ad067a7e6a1735ab97a1af450d2ba060cbf403d47785a69b249e9c562f410" title="Allow | to combine values in a bitfield.">kAllowOr</a> is ignored. </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">flavor</td><td>The converted thread state flavor value.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><code>true</code> on success, <code>false</code> if <em>string</em> could not be converted as requested. </dd></dl>
</div>
</div>
<a id="a8913260552f8af42d01f9155b6e717a5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8913260552f8af42d01f9155b6e717a5">&#9670;&nbsp;</a></span>StringVectorToCStringVector()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void crashpad::StringVectorToCStringVector </td>
<td>(</td>
<td class="paramtype">const std::vector&lt; std::string &gt; &amp;&#160;</td>
<td class="paramname"><em>strings</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::vector&lt; const char * &gt; *&#160;</td>
<td class="paramname"><em>c_strings</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Flattens a string vector into a const char* vector suitable for use in an exec() call. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">strings</td><td>A vector of string data. This vector must remain valid for the lifetime of <em>c_strings</em>. </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">c_strings</td><td>A vector of pointers to the string data in <em>strings</em>. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="ac8605dea4710c2630ccdd21439e05999"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac8605dea4710c2630ccdd21439e05999">&#9670;&nbsp;</a></span>strnlen()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">size_t crashpad::strnlen </td>
<td>(</td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>string</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>max_length</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">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the length of a string, not to exceed a maximum. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">string</td><td>The string whose length is to be calculated. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">max_length</td><td>The maximum length to return.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The length of <em>string</em>, determined as the index of the first <code>NUL</code> byte found, not exceeding <em>max_length</em>.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>This function is provided because it was introduced in POSIX.1-2008, and not all systems’ standard libraries provide an implementation. </dd></dl>
</div>
</div>
<a id="a47204f3a62646651e8f393cac2a6316b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a47204f3a62646651e8f393cac2a6316b">&#9670;&nbsp;</a></span>SystemCrashReporterHandler()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">base::mac::ScopedMachSendRight crashpad::SystemCrashReporterHandler </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Obtains the system’s default Mach exception handler for crash-type exceptions. </p>
<p>This is obtained by looking up <code>"com.apple.ReportCrash"</code> with the bootstrap server. The service name comes from the first launch agent loaded by <code>launchd</code> with a <code>MachServices</code> entry having <code>ExceptionServer</code> set. This launch agent is normally loaded from <code>/System/Library/LaunchAgents/com.apple.ReportCrash.plist</code>.</p>
<dl class="section return"><dt>Returns</dt><dd>On success, a send right to an <code>exception_handler_t</code> corresponding to the system’s default crash reporter. On failure, <code>MACH_PORT_NULL</code>, with a message logged. </dd></dl>
</div>
</div>
<a id="aeff94a266a84248b3ff0defae01efd8d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aeff94a266a84248b3ff0defae01efd8d">&#9670;&nbsp;</a></span>TaskForPID()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">task_t crashpad::TaskForPID </td>
<td>(</td>
<td class="paramtype">pid_t&#160;</td>
<td class="paramname"><em>pid</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Wraps <code>task_for_pid()</code>. </p>
<p>This function exists to support <code>task_for_pid()</code> access checks in a setuid environment. Normally, <code>task_for_pid()</code> can only return an arbitrary task’s port when running as root or when taskgated(8) approves. When not running as root, a series of access checks are perfomed to ensure that the running process has permission to obtain the other process’ task port.</p>
<p>It is possible to make an executable setuid root to give it broader <code>task_for_pid()</code> access by bypassing taskgated(8) checks, but this also has the effect of bypassing the access checks, allowing any process’ task port to be obtained. In most situations, these access checks are desirable to prevent security and privacy breaches.</p>
<p>When running as setuid root, this function wraps <code>task_for_pid()</code>, reimplementing those access checks. A process whose effective user ID is 0 and whose real user ID is nonzero is understood to be running setuid root. In this case, the requested task’s real, effective, and saved set-user IDs must all equal the running process’ real user ID, the requested task must not have changed privileges, and the requested task’s set of all group IDs (including its real, effective, and saved set-group IDs and supplementary group list) must be a subset of the running process’ set of all group IDs. These access checks mimic those that the kernel performs.</p>
<p>When not running as setuid root, <code>task_for_pid()</code> is called directly, without imposing any additional checks beyond what the kernel does.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">pid</td><td>The process ID of the task whose task port is desired.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A send right to the task port if it could be obtained, or <code>TASK_NULL</code> otherwise, with an error message logged. If a send right is returned, the caller takes ownership of it. </dd></dl>
</div>
</div>
<a id="a857f6b2f39cb21b22891242df26757e0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a857f6b2f39cb21b22891242df26757e0">&#9670;&nbsp;</a></span>ThreadStateFlavorToString()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::string crashpad::ThreadStateFlavorToString </td>
<td>(</td>
<td class="paramtype">thread_state_flavor_t&#160;</td>
<td class="paramname"><em>flavor</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacecrashpad.html#a0f13feba965ef7750b3d49064936e5ee">SymbolicConstantToStringOptions</a>&#160;</td>
<td class="paramname"><em>options</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Converts a thread state flavor value to a textual representation. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">flavor</td><td>The thread state flavor value to convert. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">options</td><td>Options affecting the conversion. <a class="el" href="namespacecrashpad.html#a7856b82b71167792ea6103debb5105eda18aa149c3471a5129274df2af6972f04" title="Use | to combine values in a bitfield.">kUseOr</a> is ignored. For <a class="el" href="namespacecrashpad.html#a7856b82b71167792ea6103debb5105edaf9da07820c9857c86422b70c3cc33c12" title="If no symbolic name is known for a given constant, return a numeric string.">kUnknownIsNumeric</a>, the format is <code>"%d"</code>.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The converted string. </dd></dl>
</div>
</div>
<a id="a6b7029dc1761d085612fdd6732d7130a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6b7029dc1761d085612fdd6732d7130a">&#9670;&nbsp;</a></span>TimespecToTimeval()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool crashpad::TimespecToTimeval </td>
<td>(</td>
<td class="paramtype">const timespec &amp;&#160;</td>
<td class="paramname"><em>ts</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">timeval *&#160;</td>
<td class="paramname"><em>tv</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Convert the timespec <em>ts</em> to a timeval <em>tv</em>. </p>
<dl class="section return"><dt>Returns</dt><dd><code>true</code> if the assignment is possible without truncation. </dd></dl>
</div>
</div>
<a id="a34001ec0bfa5e0815fa478a8cf025c61"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a34001ec0bfa5e0815fa478a8cf025c61">&#9670;&nbsp;</a></span>UniversalExceptionRaise()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">kern_return_t crashpad::UniversalExceptionRaise </td>
<td>(</td>
<td class="paramtype">exception_behavior_t&#160;</td>
<td class="paramname"><em>behavior</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">exception_handler_t&#160;</td>
<td class="paramname"><em>exception_port</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">thread_t&#160;</td>
<td class="paramname"><em>thread</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">task_t&#160;</td>
<td class="paramname"><em>task</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">exception_type_t&#160;</td>
<td class="paramname"><em>exception</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const mach_exception_data_type_t *&#160;</td>
<td class="paramname"><em>code</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">mach_msg_type_number_t&#160;</td>
<td class="paramname"><em>code_count</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">thread_state_flavor_t *&#160;</td>
<td class="paramname"><em>flavor</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacecrashpad.html#a72fa9ea632f7f1ec93ec3c1b1d300db6">ConstThreadState</a>&#160;</td>
<td class="paramname"><em>old_state</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">mach_msg_type_number_t&#160;</td>
<td class="paramname"><em>old_state_count</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">thread_state_t&#160;</td>
<td class="paramname"><em>new_state</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">mach_msg_type_number_t *&#160;</td>
<td class="paramname"><em>new_state_count</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Calls the appropriate <code>*exception_raise*()</code> function for the specified <em>behavior</em>. </p>
<p>The function called will be <code>exception_raise()</code> for <code>EXCEPTION_DEFAULT</code>, <code>exception_raise_state()</code> for <code>EXCEPTION_STATE</code>, or <code>exception_raise_state_identity()</code> for <code>EXCEPTION_STATE_IDENTITY</code>. If <code>MACH_EXCEPTION_CODES</code> is also set, the function called will instead be <code>mach_exception_raise()</code>, <code>mach_exception_raise_state()</code> or <code>mach_exception_raise_state_identity()</code>, respectively.</p>
<p>This function does not fetch the existing thread state for <em>behavior</em> values that require a thread state. The caller must provide the existing thread state in the <em>flavor</em>, <em>old_state</em>, and <em>old_state_count</em> parameters for <em>behavior</em> values that require a thread state. <a class="el" href="classcrashpad_1_1Thread.html" title="Basic thread abstraction. Users should derive from this class and implement ThreadMain().">Thread</a> states may be obtained by calling <code>thread_get_state()</code> if needed. Similarly, this function does not do anything with the new thread state returned for these <em>behavior</em> values. Callers that wish to make use of the new thread state may do so by using the returned <em>flavor</em>, <em>new_state</em>, and <em>new_state_count</em> values. <a class="el" href="classcrashpad_1_1Thread.html" title="Basic thread abstraction. Users should derive from this class and implement ThreadMain().">Thread</a> states may be set by calling <code>thread_set_state()</code> if needed.</p>
<p><em>thread</em> and <em>task</em> are only used when <em>behavior</em> indicates that the exception message will carry identity information, when it has the value <code>EXCEPTION_DEFAULT</code> or <code>EXCEPTION_STATE_IDENTITY</code>, possibly with <code>MACH_EXCEPTION_CODES</code> also set. In other cases, these parameters are unused and may be set to <code>THREAD_NULL</code> and <code>TASK_NULL</code>, respectively.</p>
<p><em>flavor</em>, <em>old_state</em>, <em>old_state_count</em>, <em>new_state</em>, and <em>new_state_count</em> are only used when <em>behavior</em> indicates that the exception message will carry thread state information, when it has the value <code>EXCEPTION_STATE</code> or <code>EXCEPTION_STATE_IDENTITY</code>, possibly with <code>MACH_EXCEPTION_CODES</code> also set. In other cases, these parameters are unused and may be set to <code>0</code> (<em>old_state_count</em>) or <code>nullptr</code> (the remaining parameters).</p>
<p>Except as noted, the parameters and return value are equivalent to those of the <code>*exception_raise*()</code> family of functions.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">behavior</td><td>The exception behavior, which dictates which function will be called. It is an error to call this function with an invalid value for <em>behavior</em>. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">exception_port</td><td></td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">thread</td><td></td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">task</td><td></td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">exception</td><td></td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">code</td><td>If <em>behavior</em> indicates a behavior without <code>MACH_EXCEPTION_CODES</code>, the elements of <em>code</em> will be truncated in order to be passed to the appropriate exception handler. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">code_count</td><td></td></tr>
<tr><td class="paramdir">[in,out]</td><td class="paramname">flavor</td><td></td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">old_state</td><td></td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">old_state_count</td><td></td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">new_state</td><td></td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">new_state_count</td><td></td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The return value of the function called. </dd></dl>
</div>
</div>
<a id="a16b771a34723da94fac698418232b1e2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a16b771a34723da94fac698418232b1e2">&#9670;&nbsp;</a></span>URLEncode()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::string crashpad::URLEncode </td>
<td>(</td>
<td class="paramtype">const std::string &amp;&#160;</td>
<td class="paramname"><em>url</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Performs percent-encoding (URL encoding) on the input string, following RFC 3986 paragraph 2. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">url</td><td>The string to be encoded. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The encoded string. </dd></dl>
</div>
</div>
<a id="ada530c306bf30e9ed9274c20d05c0db4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ada530c306bf30e9ed9274c20d05c0db4">&#9670;&nbsp;</a></span>WriteFile()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool crashpad::WriteFile </td>
<td>(</td>
<td class="paramtype"><a class="el" href="namespacecrashpad.html#a07f8e33c4fdeba3783277f9f2563e48a">FileHandle</a>&#160;</td>
<td class="paramname"><em>file</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const void *&#160;</td>
<td class="paramname"><em>buffer</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>size</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Writes to a file, retrying when interrupted on POSIX or following a short write. </p>
<p>This function writes to <em>file</em>, stopping only when <em>size</em> bytes have been written.</p>
<dl class="section return"><dt>Returns</dt><dd><code>true</code> on success. <code>false</code> on error, with <code>errno</code> or <code>GetLastError()</code> set appropriately. On error, a portion of <em>buffer</em> may have been written to <em>file</em>.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="namespacecrashpad.html#a8599600814a17d622766decd5f122a96" title="Reads from a file, retrying when interrupted before reading any data on POSIX.">ReadFile</a> </dd>
<dd>
<a class="el" href="namespacecrashpad.html#a8a91af9c690d2a280c463596bf82070b" title="Wraps WriteFile(), ensuring that exactly size bytes are written.">LoggingWriteFile</a> </dd>
<dd>
<a class="el" href="namespacecrashpad.html#a74c74fefa3b1f5e0c1b885755c9f9cf6" title="Wraps WriteFile(), ensuring that exactly size bytes are written.">CheckedWriteFile</a> </dd></dl>
</div>
</div>
<a id="a6842e0ae3110f04477765c771c04dc60"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6842e0ae3110f04477765c771c04dc60">&#9670;&nbsp;</a></span>WriteXattr()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool crashpad::WriteXattr </td>
<td>(</td>
<td class="paramtype">const base::FilePath &amp;&#160;</td>
<td class="paramname"><em>file</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const base::StringPiece &amp;&#160;</td>
<td class="paramname"><em>name</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::string &amp;&#160;</td>
<td class="paramname"><em>value</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Writes an extended attribute on a file. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">file</td><td>The path to the file. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">name</td><td>The name of the extended attribute to write. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">value</td><td>The value of the attribute.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><code>true</code> if the write was successful. <code>false</code> on error, with a message logged. </dd></dl>
</div>
</div>
<a id="ae086861e350e7225e4ea065d941e664f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae086861e350e7225e4ea065d941e664f">&#9670;&nbsp;</a></span>WriteXattrBool()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool crashpad::WriteXattrBool </td>
<td>(</td>
<td class="paramtype">const base::FilePath &amp;&#160;</td>
<td class="paramname"><em>file</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const base::StringPiece &amp;&#160;</td>
<td class="paramname"><em>name</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>value</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Writes an extended attribute on a file. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">file</td><td>The path to the file. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">name</td><td>The name of the extended attribute to write. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">value</td><td>The value of the attribute.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><code>true</code> if the write was successful. <code>false</code> on error, with a message logged. </dd></dl>
</div>
</div>
<a id="a85a3551184d900a1d970bd8fa0be0ec3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a85a3551184d900a1d970bd8fa0be0ec3">&#9670;&nbsp;</a></span>WriteXattrInt()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool crashpad::WriteXattrInt </td>
<td>(</td>
<td class="paramtype">const base::FilePath &amp;&#160;</td>
<td class="paramname"><em>file</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const base::StringPiece &amp;&#160;</td>
<td class="paramname"><em>name</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>value</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Writes an extended attribute on a file. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">file</td><td>The path to the file. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">name</td><td>The name of the extended attribute to write. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">value</td><td>The value of the attribute.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><code>true</code> if the write was successful. <code>false</code> on error, with a message logged. </dd></dl>
</div>
</div>
<a id="ae63f9a1eeeec00b78c216f72b1ca1327"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae63f9a1eeeec00b78c216f72b1ca1327">&#9670;&nbsp;</a></span>WriteXattrTimeT()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool crashpad::WriteXattrTimeT </td>
<td>(</td>
<td class="paramtype">const base::FilePath &amp;&#160;</td>
<td class="paramname"><em>file</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const base::StringPiece &amp;&#160;</td>
<td class="paramname"><em>name</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">time_t&#160;</td>
<td class="paramname"><em>value</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Writes an extended attribute on a file. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">file</td><td>The path to the file. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">name</td><td>The name of the extended attribute to write. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">value</td><td>The value of the attribute.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><code>true</code> if the write was successful. <code>false</code> on error, with a message logged. </dd></dl>
</div>
</div>
<a id="ae0634eb0299cf5b28f7a373454d97c51"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae0634eb0299cf5b28f7a373454d97c51">&#9670;&nbsp;</a></span>ZlibErrorString()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::string crashpad::ZlibErrorString </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>zr</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Formats a string for an error received from the zlib library. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">zr</td><td>A zlib result code, such as <code>Z_STREAM_ERROR</code>.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A formatted string. </dd></dl>
</div>
</div>
<a id="af9a547efca1b5ea53e95a3a12047c38a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af9a547efca1b5ea53e95a3a12047c38a">&#9670;&nbsp;</a></span>ZlibWindowBitsWithGzipWrapper()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int crashpad::ZlibWindowBitsWithGzipWrapper </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>window_bits</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Obtain a <em>window_bits</em> parameter to pass to <code>deflateInit2()</code> or <code>inflateInit2()</code> that specifies a <code>gzip</code> wrapper instead of the default zlib wrapper. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">window_bits</td><td>A <em>window_bits</em> value that only specifies the base-2 logarithm of the deflate sliding window size.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><em>window_bits</em> adjusted to specify a <code>gzip</code> wrapper, to be passed to <code>deflateInit2()</code> or <code>inflateInit2()</code>. </dd></dl>
</div>
</div>
<h2 class="groupheader">Variable Documentation</h2>
<a id="a38551501b8f5006f1f4ac602b87e2724"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a38551501b8f5006f1f4ac602b87e2724">&#9670;&nbsp;</a></span>g_test_crashpad_info</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="structcrashpad_1_1TestCrashpadInfo.html">TestCrashpadInfo</a> crashpad::g_test_crashpad_info</td>
</tr>
</table>
</div><div class="memdoc">
<b>Initial value:</b><div class="fragment"><div class="line">= {<span class="stringliteral">&#39;CPad&#39;</span>,</div>
<div class="line"> <span class="keyword">sizeof</span>(TestCrashpadInfo),</div>
<div class="line"> 1,</div>
<div class="line"> 0,</div>
<div class="line"> 0,</div>
<div class="line"> 0,</div>
<div class="line"> 0,</div>
<div class="line"> 0,</div>
<div class="line"> 0,</div>
<div class="line"> <span class="keyword">nullptr</span>,</div>
<div class="line"> <span class="keyword">nullptr</span>,</div>
<div class="line"> </div>
<div class="line"> <span class="keyword">nullptr</span>,</div>
<div class="line"> <span class="keyword">nullptr</span>,</div>
<div class="line"> </div>
<div class="line"> </div>
<div class="line"> </div>
<div class="line"> </div>
<div class="line">}</div>
</div><!-- fragment -->
</div>
</div>
<a id="a0999f3c072971348f71f196848fcde12"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0999f3c072971348f71f196848fcde12">&#9670;&nbsp;</a></span>kMachExceptionCodes</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">constexpr exception_behavior_t crashpad::kMachExceptionCodes = MACH_EXCEPTION_CODES</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">constexpr</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p><code>MACH_EXCEPTION_CODES</code> with the correct type for a Mach exception behavior, <code>exception_behavior_t</code>. </p>
<p>Signedness problems can occur when ORing <code>MACH_EXCEPTION_CODES</code> as a signed integer, because a signed integer overflow results. This constant can be used instead of <code>MACH_EXCEPTION_CODES</code> in such cases. </p>
</div>
</div>
<a id="a2c87c3ca622c253c84e9b557a0abe034"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2c87c3ca622c253c84e9b557a0abe034">&#9670;&nbsp;</a></span>kMachMessageReceiveAuditTrailer</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">constexpr mach_msg_option_t crashpad::kMachMessageReceiveAuditTrailer</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">constexpr</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<b>Initial value:</b><div class="fragment"><div class="line">=</div>
<div class="line"> MACH_RCV_TRAILER_TYPE(MACH_MSG_TRAILER_FORMAT_0) |</div>
<div class="line"> MACH_RCV_TRAILER_ELEMENTS(MACH_RCV_TRAILER_AUDIT)</div>
</div><!-- fragment -->
<p>A Mach message option specifying that an audit trailer should be delivered during a receive operation. </p>
<p>This constant is provided because the macros normally used to request this behavior are cumbersome. </p>
</div>
</div>
<a id="a253712a6760b4b8a54dbcc8943692731"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a253712a6760b4b8a54dbcc8943692731">&#9670;&nbsp;</a></span>kMachPortNull</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">constexpr mach_port_t crashpad::kMachPortNull = MACH_PORT_NULL</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">constexpr</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p><code>MACH_PORT_NULL</code> with the correct type for a Mach port, <code>mach_port_t</code>. </p>
<p>For situations where implicit conversions between signed and unsigned types are not performed, use kMachPortNull instead of an explicit <code>implicit_cast</code> of <code>MACH_PORT_NULL</code> to <code>mach_port_t</code>. This is useful for logging and testing assertions. </p>
</div>
</div>
<a id="a83421817896ef24623f0f1cf10268843"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a83421817896ef24623f0f1cf10268843">&#9670;&nbsp;</a></span>kMaxNumberOfAnnotations</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">constexpr size_t crashpad::kMaxNumberOfAnnotations = 200</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">constexpr</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>The maximum number of crashpad::Annotations that will be read from a client process. </p>
<dl class="section note"><dt>Note</dt><dd>This maximum was chosen arbitrarily and may change in the future. </dd></dl>
</div>
</div>
</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>