crashpad/doc/generated/doxygen/classcrashpad_1_1internal_1_1ExceptionSnapshotWin.html
2018-08-01 13:34:49 -04:00

394 lines
24 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.14"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Crashpad: crashpad::internal::ExceptionSnapshotWin Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="crashpad_doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Crashpad
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.14 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="namespacecrashpad.html">crashpad</a></li><li class="navelem"><a class="el" href="namespacecrashpad_1_1internal.html">internal</a></li><li class="navelem"><a class="el" href="classcrashpad_1_1internal_1_1ExceptionSnapshotWin.html">ExceptionSnapshotWin</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_1ExceptionSnapshotWin-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">crashpad::internal::ExceptionSnapshotWin Class Reference<span class="mlabels"><span class="mlabel">final</span></span></div> </div>
</div><!--header-->
<div class="contents">
<div class="dynheader">
Inheritance diagram for crashpad::internal::ExceptionSnapshotWin:</div>
<div class="dyncontent">
<div class="center">
<img src="classcrashpad_1_1internal_1_1ExceptionSnapshotWin.png" usemap="#crashpad::internal::ExceptionSnapshotWin_map" alt=""/>
<map id="crashpad::internal::ExceptionSnapshotWin_map" name="crashpad::internal::ExceptionSnapshotWin_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,247,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:a689b7087d7d69cf432c32c2f3dd748c7"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1internal_1_1ExceptionSnapshotWin.html#a689b7087d7d69cf432c32c2f3dd748c7">Initialize</a> (<a class="el" href="classcrashpad_1_1ProcessReaderWin.html">ProcessReaderWin</a> *process_reader, DWORD thread_id, <a class="el" href="namespacecrashpad.html#a368af6d88f68998b5c5eb80b8f6ebb76">WinVMAddress</a> exception_pointers)</td></tr>
<tr class="memdesc:a689b7087d7d69cf432c32c2f3dd748c7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes the object. <a href="#a689b7087d7d69cf432c32c2f3dd748c7">More...</a><br /></td></tr>
<tr class="separator:a689b7087d7d69cf432c32c2f3dd748c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab4c2e6947c052aa9d0ded95b5be72de1"><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_1ExceptionSnapshotWin.html#ab4c2e6947c052aa9d0ded95b5be72de1">Context</a> () const override</td></tr>
<tr class="memdesc:ab4c2e6947c052aa9d0ded95b5be72de1"><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 threads CPU context at the time of the exception. <a href="#ab4c2e6947c052aa9d0ded95b5be72de1">More...</a><br /></td></tr>
<tr class="separator:ab4c2e6947c052aa9d0ded95b5be72de1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a140f74a35257a73faca6b0e2d8f04f44"><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1internal_1_1ExceptionSnapshotWin.html#a140f74a35257a73faca6b0e2d8f04f44">ThreadID</a> () const override</td></tr>
<tr class="memdesc:a140f74a35257a73faca6b0e2d8f04f44"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the thread identifier of the thread that triggered the exception. <a href="#a140f74a35257a73faca6b0e2d8f04f44">More...</a><br /></td></tr>
<tr class="separator:a140f74a35257a73faca6b0e2d8f04f44"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8083efff504bd812e2de87bfbf3d9547"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1internal_1_1ExceptionSnapshotWin.html#a8083efff504bd812e2de87bfbf3d9547">Exception</a> () const override</td></tr>
<tr class="memdesc:a8083efff504bd812e2de87bfbf3d9547"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the top-level exception code identifying the exception. <a href="#a8083efff504bd812e2de87bfbf3d9547">More...</a><br /></td></tr>
<tr class="separator:a8083efff504bd812e2de87bfbf3d9547"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5977dded1385688030a667ac1fafaa51"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1internal_1_1ExceptionSnapshotWin.html#a5977dded1385688030a667ac1fafaa51">ExceptionInfo</a> () const override</td></tr>
<tr class="memdesc:a5977dded1385688030a667ac1fafaa51"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the second-level exception code identifying the exception. <a href="#a5977dded1385688030a667ac1fafaa51">More...</a><br /></td></tr>
<tr class="separator:a5977dded1385688030a667ac1fafaa51"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8d42e828a3f6768b21114fc1f20c03d3"><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1internal_1_1ExceptionSnapshotWin.html#a8d42e828a3f6768b21114fc1f20c03d3">ExceptionAddress</a> () const override</td></tr>
<tr class="memdesc:a8d42e828a3f6768b21114fc1f20c03d3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the address that triggered the exception. <a href="#a8d42e828a3f6768b21114fc1f20c03d3">More...</a><br /></td></tr>
<tr class="separator:a8d42e828a3f6768b21114fc1f20c03d3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9e062aaf208e2e20ba68b407b9bfd950"><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_1ExceptionSnapshotWin.html#a9e062aaf208e2e20ba68b407b9bfd950">Codes</a> () const override</td></tr>
<tr class="memdesc:a9e062aaf208e2e20ba68b407b9bfd950"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a series of operating system-specific exception codes. <a href="#a9e062aaf208e2e20ba68b407b9bfd950">More...</a><br /></td></tr>
<tr class="separator:a9e062aaf208e2e20ba68b407b9bfd950"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af4e67f7a996f10eee640dabf1833fd6c"><td class="memItemLeft" align="right" valign="top">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_1ExceptionSnapshotWin.html#af4e67f7a996f10eee640dabf1833fd6c">ExtraMemory</a> () const override</td></tr>
<tr class="memdesc:af4e67f7a996f10eee640dabf1833fd6c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a vector of additional memory blocks that should be included in a minidump. <a href="#af4e67f7a996f10eee640dabf1833fd6c">More...</a><br /></td></tr>
<tr class="separator:af4e67f7a996f10eee640dabf1833fd6c"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a9e062aaf208e2e20ba68b407b9bfd950"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9e062aaf208e2e20ba68b407b9bfd950">&#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::ExceptionSnapshotWin::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="ab4c2e6947c052aa9d0ded95b5be72de1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab4c2e6947c052aa9d0ded95b5be72de1">&#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::ExceptionSnapshotWin::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 threads 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="a8083efff504bd812e2de87bfbf3d9547"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8083efff504bd812e2de87bfbf3d9547">&#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::ExceptionSnapshotWin::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_1ExceptionSnapshotWin.html#a9e062aaf208e2e20ba68b407b9bfd950" 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="a8d42e828a3f6768b21114fc1f20c03d3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8d42e828a3f6768b21114fc1f20c03d3">&#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::ExceptionSnapshotWin::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="a5977dded1385688030a667ac1fafaa51"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5977dded1385688030a667ac1fafaa51">&#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::ExceptionSnapshotWin::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_1ExceptionSnapshotWin.html#a9e062aaf208e2e20ba68b407b9bfd950" 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="af4e67f7a996f10eee640dabf1833fd6c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af4e67f7a996f10eee640dabf1833fd6c">&#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::ExceptionSnapshotWin::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="a689b7087d7d69cf432c32c2f3dd748c7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a689b7087d7d69cf432c32c2f3dd748c7">&#9670;&nbsp;</a></span>Initialize()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool crashpad::internal::ExceptionSnapshotWin::Initialize </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classcrashpad_1_1ProcessReaderWin.html">ProcessReaderWin</a> *&#160;</td>
<td class="paramname"><em>process_reader</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">DWORD&#160;</td>
<td class="paramname"><em>thread_id</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacecrashpad.html#a368af6d88f68998b5c5eb80b8f6ebb76">WinVMAddress</a>&#160;</td>
<td class="paramname"><em>exception_pointers</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_1ProcessReaderWin.html" title="Accesses information about another process, identified by a HANDLE. ">ProcessReaderWin</a> for the process that sustained the exception. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">thread_id</td><td>The thread ID in which the exception occurred. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">exception_pointers</td><td>The address of an <code>EXCEPTION_POINTERS</code> record in the target process, passed through from the exception handler.</td></tr>
</table>
</dd>
</dl>
<dl class="section note"><dt>Note</dt><dd>If the exception was triggered by <a class="el" href="classcrashpad_1_1CrashpadClient.html#a35a46ba3d17822a7025b526980564d7e" title="Requests that the handler capture a dump of a different process. ">CrashpadClient::DumpAndCrashTargetProcess()</a>, this has the side-effect of correcting the thread suspend counts for <em>process_reader</em>.</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="a140f74a35257a73faca6b0e2d8f04f44"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a140f74a35257a73faca6b0e2d8f04f44">&#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::ExceptionSnapshotWin::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 threads 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/win/exception_snapshot_win.h</li>
<li>snapshot/win/exception_snapshot_win.cc</li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.14
</small></address>
</body>
</html>