<!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::ExceptionSnapshotLinux 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_1ExceptionSnapshotLinux.html">ExceptionSnapshotLinux</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_1ExceptionSnapshotLinux-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">crashpad::internal::ExceptionSnapshotLinux 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 signal received by a running (or crashed) process on a Linux system.  
 <a href="classcrashpad_1_1internal_1_1ExceptionSnapshotLinux.html#details">More...</a></p>

<p><code>#include &quot;snapshot/linux/exception_snapshot_linux.h&quot;</code></p>
<div class="dynheader">
Inheritance diagram for crashpad::internal::ExceptionSnapshotLinux:</div>
<div class="dyncontent">
 <div class="center">
  <img src="classcrashpad_1_1internal_1_1ExceptionSnapshotLinux.png" usemap="#crashpad::internal::ExceptionSnapshotLinux_map" alt=""/>
  <map id="crashpad::internal::ExceptionSnapshotLinux_map" name="crashpad::internal::ExceptionSnapshotLinux_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,256,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:af77cb9e98dd351eea426d6bcb2358dda"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1internal_1_1ExceptionSnapshotLinux.html#af77cb9e98dd351eea426d6bcb2358dda">Initialize</a> (<a class="el" href="classcrashpad_1_1ProcessReaderLinux.html">ProcessReaderLinux</a> *process_reader, <a class="el" href="namespacecrashpad.html#acb197256391fbfca91f9a7e5c911db45">LinuxVMAddress</a> siginfo_address, <a class="el" href="namespacecrashpad.html#acb197256391fbfca91f9a7e5c911db45">LinuxVMAddress</a> context_address, pid_t thread_id)</td></tr>
<tr class="memdesc:af77cb9e98dd351eea426d6bcb2358dda"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes the object.  <a href="classcrashpad_1_1internal_1_1ExceptionSnapshotLinux.html#af77cb9e98dd351eea426d6bcb2358dda">More...</a><br /></td></tr>
<tr class="separator:af77cb9e98dd351eea426d6bcb2358dda"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abbd1bf5416a23d3416f709873509b36b"><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_1ExceptionSnapshotLinux.html#abbd1bf5416a23d3416f709873509b36b">Context</a> () const override</td></tr>
<tr class="memdesc:abbd1bf5416a23d3416f709873509b36b"><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_1ExceptionSnapshotLinux.html#abbd1bf5416a23d3416f709873509b36b">More...</a><br /></td></tr>
<tr class="separator:abbd1bf5416a23d3416f709873509b36b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7f1befd18a82340f4f7edd550cb35af2"><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1internal_1_1ExceptionSnapshotLinux.html#a7f1befd18a82340f4f7edd550cb35af2">ThreadID</a> () const override</td></tr>
<tr class="memdesc:a7f1befd18a82340f4f7edd550cb35af2"><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_1ExceptionSnapshotLinux.html#a7f1befd18a82340f4f7edd550cb35af2">More...</a><br /></td></tr>
<tr class="separator:a7f1befd18a82340f4f7edd550cb35af2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a56eca1b067ef859926c56d25e0b208b2"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1internal_1_1ExceptionSnapshotLinux.html#a56eca1b067ef859926c56d25e0b208b2">Exception</a> () const override</td></tr>
<tr class="memdesc:a56eca1b067ef859926c56d25e0b208b2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the top-level exception code identifying the exception.  <a href="classcrashpad_1_1internal_1_1ExceptionSnapshotLinux.html#a56eca1b067ef859926c56d25e0b208b2">More...</a><br /></td></tr>
<tr class="separator:a56eca1b067ef859926c56d25e0b208b2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adf6edc2ae286986027ebda04c53d25f7"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1internal_1_1ExceptionSnapshotLinux.html#adf6edc2ae286986027ebda04c53d25f7">ExceptionInfo</a> () const override</td></tr>
<tr class="memdesc:adf6edc2ae286986027ebda04c53d25f7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the second-level exception code identifying the exception.  <a href="classcrashpad_1_1internal_1_1ExceptionSnapshotLinux.html#adf6edc2ae286986027ebda04c53d25f7">More...</a><br /></td></tr>
<tr class="separator:adf6edc2ae286986027ebda04c53d25f7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ace9d4fa78bf7fd8fea2ce15488653940"><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1internal_1_1ExceptionSnapshotLinux.html#ace9d4fa78bf7fd8fea2ce15488653940">ExceptionAddress</a> () const override</td></tr>
<tr class="memdesc:ace9d4fa78bf7fd8fea2ce15488653940"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the address that triggered the exception.  <a href="classcrashpad_1_1internal_1_1ExceptionSnapshotLinux.html#ace9d4fa78bf7fd8fea2ce15488653940">More...</a><br /></td></tr>
<tr class="separator:ace9d4fa78bf7fd8fea2ce15488653940"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a744d4246a913757956bf2d66c064736a"><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_1ExceptionSnapshotLinux.html#a744d4246a913757956bf2d66c064736a">Codes</a> () const override</td></tr>
<tr class="memdesc:a744d4246a913757956bf2d66c064736a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a series of operating system-specific exception codes.  <a href="classcrashpad_1_1internal_1_1ExceptionSnapshotLinux.html#a744d4246a913757956bf2d66c064736a">More...</a><br /></td></tr>
<tr class="separator:a744d4246a913757956bf2d66c064736a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ada5fcf76174d3b2ed781b3d87f36ae9f"><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_1ExceptionSnapshotLinux.html#ada5fcf76174d3b2ed781b3d87f36ae9f">ExtraMemory</a> () const override</td></tr>
<tr class="memdesc:ada5fcf76174d3b2ed781b3d87f36ae9f"><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_1ExceptionSnapshotLinux.html#ada5fcf76174d3b2ed781b3d87f36ae9f">More...</a><br /></td></tr>
<tr class="separator:ada5fcf76174d3b2ed781b3d87f36ae9f"><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 signal received by a running (or crashed) process on a Linux system. </p>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a id="a744d4246a913757956bf2d66c064736a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a744d4246a913757956bf2d66c064736a">&#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::ExceptionSnapshotLinux::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="abbd1bf5416a23d3416f709873509b36b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abbd1bf5416a23d3416f709873509b36b">&#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::ExceptionSnapshotLinux::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="a56eca1b067ef859926c56d25e0b208b2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a56eca1b067ef859926c56d25e0b208b2">&#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::ExceptionSnapshotLinux::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_1ExceptionSnapshotLinux.html#a744d4246a913757956bf2d66c064736a" 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="ace9d4fa78bf7fd8fea2ce15488653940"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ace9d4fa78bf7fd8fea2ce15488653940">&#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::ExceptionSnapshotLinux::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="adf6edc2ae286986027ebda04c53d25f7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#adf6edc2ae286986027ebda04c53d25f7">&#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::ExceptionSnapshotLinux::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_1ExceptionSnapshotLinux.html#a744d4246a913757956bf2d66c064736a" 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="ada5fcf76174d3b2ed781b3d87f36ae9f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ada5fcf76174d3b2ed781b3d87f36ae9f">&#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::ExceptionSnapshotLinux::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="af77cb9e98dd351eea426d6bcb2358dda"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af77cb9e98dd351eea426d6bcb2358dda">&#9670;&nbsp;</a></span>Initialize()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool crashpad::internal::ExceptionSnapshotLinux::Initialize </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classcrashpad_1_1ProcessReaderLinux.html">ProcessReaderLinux</a> *&#160;</td>
          <td class="paramname"><em>process_reader</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespacecrashpad.html#acb197256391fbfca91f9a7e5c911db45">LinuxVMAddress</a>&#160;</td>
          <td class="paramname"><em>siginfo_address</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespacecrashpad.html#acb197256391fbfca91f9a7e5c911db45">LinuxVMAddress</a>&#160;</td>
          <td class="paramname"><em>context_address</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">pid_t&#160;</td>
          <td class="paramname"><em>thread_id</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Initializes the object. </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_1ProcessReaderLinux.html" title="Accesses information about another process, identified by a process ID.">ProcessReaderLinux</a> for the process that received the signal. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">siginfo_address</td><td>The address in the target process' address space of the siginfo_t passed to the signal handler. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">context_address</td><td>The address in the target process' address space of the ucontext_t passed to the signal handler. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">thread_id</td><td>The thread ID of the thread that received the signal.</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="a7f1befd18a82340f4f7edd550cb35af2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7f1befd18a82340f4f7edd550cb35af2">&#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::ExceptionSnapshotLinux::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/linux/exception_snapshot_linux.h</li>
<li>snapshot/linux/exception_snapshot_linux.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>
