<!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::internal::ExceptionSnapshotMac Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="crashpad_doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">Crashpad
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.18 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="namespacecrashpad.html">crashpad</a></li><li class="navelem"><a class="el" href="namespacecrashpad_1_1internal.html">internal</a></li><li class="navelem"><a class="el" href="classcrashpad_1_1internal_1_1ExceptionSnapshotMac.html">ExceptionSnapshotMac</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="classcrashpad_1_1internal_1_1ExceptionSnapshotMac-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">crashpad::internal::ExceptionSnapshotMac Class Reference<span class="mlabels"><span class="mlabel">final</span></span></div>  </div>
</div><!--header-->
<div class="contents">

<p>An <a class="el" href="classcrashpad_1_1ExceptionSnapshot.html" title="An abstract interface to a snapshot representing an exception that a snapshot process sustained and t...">ExceptionSnapshot</a> of an exception sustained by a running (or crashed) process on a macOS system.  
 <a href="classcrashpad_1_1internal_1_1ExceptionSnapshotMac.html#details">More...</a></p>

<p><code>#include &quot;snapshot/mac/exception_snapshot_mac.h&quot;</code></p>
<div class="dynheader">
Inheritance diagram for crashpad::internal::ExceptionSnapshotMac:</div>
<div class="dyncontent">
 <div class="center">
  <img src="classcrashpad_1_1internal_1_1ExceptionSnapshotMac.png" usemap="#crashpad::internal::ExceptionSnapshotMac_map" alt=""/>
  <map id="crashpad::internal::ExceptionSnapshotMac_map" name="crashpad::internal::ExceptionSnapshotMac_map">
<area href="classcrashpad_1_1ExceptionSnapshot.html" title="An abstract interface to a snapshot representing an exception that a snapshot process sustained and t..." alt="crashpad::ExceptionSnapshot" shape="rect" coords="0,0,251,24"/>
  </map>
</div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:ab2772fcf88efa361c2071d712c00de33"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1internal_1_1ExceptionSnapshotMac.html#ab2772fcf88efa361c2071d712c00de33">Initialize</a> (<a class="el" href="classcrashpad_1_1ProcessReaderMac.html">ProcessReaderMac</a> *process_reader, exception_behavior_t behavior, thread_t exception_thread, 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> state, mach_msg_type_number_t state_count)</td></tr>
<tr class="memdesc:ab2772fcf88efa361c2071d712c00de33"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes the object.  <a href="classcrashpad_1_1internal_1_1ExceptionSnapshotMac.html#ab2772fcf88efa361c2071d712c00de33">More...</a><br /></td></tr>
<tr class="separator:ab2772fcf88efa361c2071d712c00de33"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aeebb43d42ba7f1eacd06bc82399055cd"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="structcrashpad_1_1CPUContext.html">CPUContext</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1internal_1_1ExceptionSnapshotMac.html#aeebb43d42ba7f1eacd06bc82399055cd">Context</a> () const override</td></tr>
<tr class="memdesc:aeebb43d42ba7f1eacd06bc82399055cd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns 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> object corresponding to the exception thread’s CPU context at the time of the exception.  <a href="classcrashpad_1_1internal_1_1ExceptionSnapshotMac.html#aeebb43d42ba7f1eacd06bc82399055cd">More...</a><br /></td></tr>
<tr class="separator:aeebb43d42ba7f1eacd06bc82399055cd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3685b418dfcf4bafc81b81dbb8b80db9"><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1internal_1_1ExceptionSnapshotMac.html#a3685b418dfcf4bafc81b81dbb8b80db9">ThreadID</a> () const override</td></tr>
<tr class="memdesc:a3685b418dfcf4bafc81b81dbb8b80db9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the thread identifier of the thread that triggered the exception.  <a href="classcrashpad_1_1internal_1_1ExceptionSnapshotMac.html#a3685b418dfcf4bafc81b81dbb8b80db9">More...</a><br /></td></tr>
<tr class="separator:a3685b418dfcf4bafc81b81dbb8b80db9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a12e7d80c0c92e30df5f90d6386b92c3f"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1internal_1_1ExceptionSnapshotMac.html#a12e7d80c0c92e30df5f90d6386b92c3f">Exception</a> () const override</td></tr>
<tr class="memdesc:a12e7d80c0c92e30df5f90d6386b92c3f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the top-level exception code identifying the exception.  <a href="classcrashpad_1_1internal_1_1ExceptionSnapshotMac.html#a12e7d80c0c92e30df5f90d6386b92c3f">More...</a><br /></td></tr>
<tr class="separator:a12e7d80c0c92e30df5f90d6386b92c3f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9ab56e1477da32b5d017b6603aed9c87"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1internal_1_1ExceptionSnapshotMac.html#a9ab56e1477da32b5d017b6603aed9c87">ExceptionInfo</a> () const override</td></tr>
<tr class="memdesc:a9ab56e1477da32b5d017b6603aed9c87"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the second-level exception code identifying the exception.  <a href="classcrashpad_1_1internal_1_1ExceptionSnapshotMac.html#a9ab56e1477da32b5d017b6603aed9c87">More...</a><br /></td></tr>
<tr class="separator:a9ab56e1477da32b5d017b6603aed9c87"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1dd9dba7bdf05e485d4307d05d0d1c13"><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1internal_1_1ExceptionSnapshotMac.html#a1dd9dba7bdf05e485d4307d05d0d1c13">ExceptionAddress</a> () const override</td></tr>
<tr class="memdesc:a1dd9dba7bdf05e485d4307d05d0d1c13"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the address that triggered the exception.  <a href="classcrashpad_1_1internal_1_1ExceptionSnapshotMac.html#a1dd9dba7bdf05e485d4307d05d0d1c13">More...</a><br /></td></tr>
<tr class="separator:a1dd9dba7bdf05e485d4307d05d0d1c13"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3179b8de3f86e150cf6d1d3078dd8109"><td class="memItemLeft" align="right" valign="top">const std::vector&lt; uint64_t &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1internal_1_1ExceptionSnapshotMac.html#a3179b8de3f86e150cf6d1d3078dd8109">Codes</a> () const override</td></tr>
<tr class="memdesc:a3179b8de3f86e150cf6d1d3078dd8109"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a series of operating system-specific exception codes.  <a href="classcrashpad_1_1internal_1_1ExceptionSnapshotMac.html#a3179b8de3f86e150cf6d1d3078dd8109">More...</a><br /></td></tr>
<tr class="separator:a3179b8de3f86e150cf6d1d3078dd8109"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a724cfd55bfd6b2f18e1148141d4ffbaa"><td class="memItemLeft" align="right" valign="top">virtual std::vector&lt; const <a class="el" href="classcrashpad_1_1MemorySnapshot.html">MemorySnapshot</a> * &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1internal_1_1ExceptionSnapshotMac.html#a724cfd55bfd6b2f18e1148141d4ffbaa">ExtraMemory</a> () const override</td></tr>
<tr class="memdesc:a724cfd55bfd6b2f18e1148141d4ffbaa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a vector of additional memory blocks that should be included in a minidump.  <a href="classcrashpad_1_1internal_1_1ExceptionSnapshotMac.html#a724cfd55bfd6b2f18e1148141d4ffbaa">More...</a><br /></td></tr>
<tr class="separator:a724cfd55bfd6b2f18e1148141d4ffbaa"><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>An <a class="el" href="classcrashpad_1_1ExceptionSnapshot.html" title="An abstract interface to a snapshot representing an exception that a snapshot process sustained and t...">ExceptionSnapshot</a> of an exception sustained by a running (or crashed) process on a macOS system. </p>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a id="a3179b8de3f86e150cf6d1d3078dd8109"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3179b8de3f86e150cf6d1d3078dd8109">&#9670;&nbsp;</a></span>Codes()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">const std::vector&lt; uint64_t &gt; &amp; crashpad::internal::ExceptionSnapshotMac::Codes </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Returns a series of operating system-specific exception codes. </p>
<p>The precise interpretation of these codes is specific to the snapshot operating system. These codes may provide a duplicate of information available elsewhere, they may extend information available elsewhere, or they may not be present at all. In this case, an empty vector will be returned.</p>
<p>For macOS, this will be a vector containing the original exception type and the values of <code>code[0]</code> and <code>code[1]</code> as received by a Mach exception handler.</p>
<p>For Windows, these are additional arguments (if any) as provided to <code>RaiseException()</code>. See the documentation for <code><a class="el" href="structcrashpad_1_1ExceptionInformation.html" title="Structure read out of the client process by the crash handler when an exception occurs.">ExceptionInformation</a></code> in <code>EXCEPTION_RECORD</code>. </p>

<p>Implements <a class="el" href="classcrashpad_1_1ExceptionSnapshot.html#a1b98ff58b73e105c39ccba39dad5a2d7">crashpad::ExceptionSnapshot</a>.</p>

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

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="structcrashpad_1_1CPUContext.html">CPUContext</a> * crashpad::internal::ExceptionSnapshotMac::Context </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Returns 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> object corresponding to the exception thread’s CPU context at the time of the exception. </p>
<p>The caller does not take ownership of this object, it is scoped to the lifetime of the <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> object that it was obtained from. </p>

<p>Implements <a class="el" href="classcrashpad_1_1ExceptionSnapshot.html#a9ba62f24e17805f436feda32c01f353e">crashpad::ExceptionSnapshot</a>.</p>

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

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">uint32_t crashpad::internal::ExceptionSnapshotMac::Exception </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Returns the top-level exception code identifying the exception. </p>
<p>This is an operating system-specific value.</p>
<p>For macOS, this will be an <a class="el" href="mach_8h.html#EXC_x">EXC_*</a> exception type, such as <code>EXC_BAD_ACCESS</code>. <code>EXC_CRASH</code> will not appear here for exceptions processed as <code>EXC_CRASH</code> when generated from another preceding exception: the original exception code will appear instead. The exception type as it was received will appear at index 0 of <a class="el" href="classcrashpad_1_1internal_1_1ExceptionSnapshotMac.html#a3179b8de3f86e150cf6d1d3078dd8109" title="Returns a series of operating system-specific exception codes.">Codes()</a>.</p>
<p>For Windows, this will be an <code>EXCEPTION_*</code> exception type, such as <code>EXCEPTION_ACCESS_VIOLATION</code>. </p>

<p>Implements <a class="el" href="classcrashpad_1_1ExceptionSnapshot.html#af73f1ae2f0572a10bd1b62dee1472607">crashpad::ExceptionSnapshot</a>.</p>

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

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">uint64_t crashpad::internal::ExceptionSnapshotMac::ExceptionAddress </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Returns the address that triggered the exception. </p>
<p>This may be the address that caused a fault on data access, or it may be the instruction pointer that contained an offending instruction. For exceptions where this value cannot be determined, it will be <code>0</code>.</p>
<p>For macOS, this will be the value of the exception code at index 1 as received by a Mach exception handler. </p>

<p>Implements <a class="el" href="classcrashpad_1_1ExceptionSnapshot.html#a12bf01b499037e2ad642d5e131f23f86">crashpad::ExceptionSnapshot</a>.</p>

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

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">uint32_t crashpad::internal::ExceptionSnapshotMac::ExceptionInfo </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Returns the second-level exception code identifying the exception. </p>
<p>This is an operating system-specific value.</p>
<p>For macOS, this will be the value of the exception code at index 0 as received by a Mach exception handler, except:</p><ul>
<li>For <code>EXC_CRASH</code> exceptions generated from another preceding exception, the original exception code will appear here, not the code as received by the Mach exception handler.</li>
<li>For <code>EXC_RESOURCE</code> and <code>EXC_GUARD</code> exceptions, the high 32 bits of the exception code at index 0 will appear here.</li>
</ul>
<p>In all cases on macOS, the full exception code at index 0 as it was received will appear at index 1 of <a class="el" href="classcrashpad_1_1internal_1_1ExceptionSnapshotMac.html#a3179b8de3f86e150cf6d1d3078dd8109" title="Returns a series of operating system-specific exception codes.">Codes()</a>.</p>
<p>On Windows, this will either be <code>0</code> if the exception is continuable, or <code>EXCEPTION_NONCONTINUABLE</code> to indicate a noncontinuable exception. </p>

<p>Implements <a class="el" href="classcrashpad_1_1ExceptionSnapshot.html#ae1c97187c37fa378252415f7f3b4e6cb">crashpad::ExceptionSnapshot</a>.</p>

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

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">std::vector&lt; const <a class="el" href="classcrashpad_1_1MemorySnapshot.html">MemorySnapshot</a> * &gt; crashpad::internal::ExceptionSnapshotMac::ExtraMemory </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Returns a vector of additional memory blocks that should be included in a minidump. </p>
<dl class="section return"><dt>Returns</dt><dd>A vector of <a class="el" href="classcrashpad_1_1MemorySnapshot.html" title="An abstract interface to a snapshot representing a region of memory present in a snapshot process.">MemorySnapshot</a> objects that will be included in the crash dump. The caller does not take ownership of these objects, they are scoped to the lifetime of the <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> object that they were obtained from. </dd></dl>

<p>Implements <a class="el" href="classcrashpad_1_1ExceptionSnapshot.html#a85e992db62e56bc47242a186b94208f4">crashpad::ExceptionSnapshot</a>.</p>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool crashpad::internal::ExceptionSnapshotMac::Initialize </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classcrashpad_1_1ProcessReaderMac.html">ProcessReaderMac</a> *&#160;</td>
          <td class="paramname"><em>process_reader</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">thread_t&#160;</td>
          <td class="paramname"><em>exception_thread</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>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>state_count</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Initializes the object. </p>
<p>Other than <em>process_reader</em>, the parameters may be passed directly through from a Mach exception handler.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">process_reader</td><td>A <a class="el" href="classcrashpad_1_1ProcessReaderMac.html" title="Accesses information about another process, identified by a Mach task.">ProcessReaderMac</a> for the task that sustained the exception. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">behavior</td><td></td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">exception_thread</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></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">state</td><td></td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">state_count</td><td></td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><code>true</code> if the snapshot could be created, <code>false</code> otherwise with an appropriate message logged. </dd></dl>

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

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">uint64_t crashpad::internal::ExceptionSnapshotMac::ThreadID </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Returns the thread identifier of the thread that triggered the exception. </p>
<p>This value can be compared to <a class="el" href="classcrashpad_1_1ThreadSnapshot.html#a3c953575fadb934cd5f163560df149da" title="Returns the thread’s identifier.">ThreadSnapshot::ThreadID()</a> to associate an <a class="el" href="classcrashpad_1_1ExceptionSnapshot.html" title="An abstract interface to a snapshot representing an exception that a snapshot process sustained and t...">ExceptionSnapshot</a> object with the <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> that contains a snapshot of the thread that triggered the exception. </p>

<p>Implements <a class="el" href="classcrashpad_1_1ExceptionSnapshot.html#aef11b2d8ffb00bb38688e09c0b62ac51">crashpad::ExceptionSnapshot</a>.</p>

</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li>snapshot/mac/exception_snapshot_mac.h</li>
<li>snapshot/mac/exception_snapshot_mac.cc</li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.18
</small></address>
</body>
</html>
