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

360 lines
22 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::ThreadSnapshotWin 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_1ThreadSnapshotWin.html">ThreadSnapshotWin</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_1ThreadSnapshotWin-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">crashpad::internal::ThreadSnapshotWin Class Reference<span class="mlabels"><span class="mlabel">final</span></span></div> </div>
</div><!--header-->
<div class="contents">
<p>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> of a thread in a running (or crashed) process on a Windows system.
<a href="classcrashpad_1_1internal_1_1ThreadSnapshotWin.html#details">More...</a></p>
<p><code>#include &quot;snapshot/win/thread_snapshot_win.h&quot;</code></p>
<div class="dynheader">
Inheritance diagram for crashpad::internal::ThreadSnapshotWin:</div>
<div class="dyncontent">
<div class="center">
<img src="classcrashpad_1_1internal_1_1ThreadSnapshotWin.png" usemap="#crashpad::internal::ThreadSnapshotWin_map" alt=""/>
<map id="crashpad::internal::ThreadSnapshotWin_map" name="crashpad::internal::ThreadSnapshotWin_map">
<area href="classcrashpad_1_1ThreadSnapshot.html" title="An abstract interface to a snapshot representing a thread (lightweight process) present in a snapshot..." alt="crashpad::ThreadSnapshot" shape="rect" coords="0,0,232,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:a9a4fca61ed97be513ed9e1e4153e43cd"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1internal_1_1ThreadSnapshotWin.html#a9a4fca61ed97be513ed9e1e4153e43cd">Initialize</a> (<a class="el" href="classcrashpad_1_1ProcessReaderWin.html">ProcessReaderWin</a> *process_reader, const <a class="el" href="structcrashpad_1_1ProcessReaderWin_1_1Thread.html">ProcessReaderWin::Thread</a> &amp;process_reader_thread, uint32_t *gather_indirectly_referenced_memory_bytes_remaining)</td></tr>
<tr class="memdesc:a9a4fca61ed97be513ed9e1e4153e43cd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes the object. <a href="#a9a4fca61ed97be513ed9e1e4153e43cd">More...</a><br /></td></tr>
<tr class="separator:a9a4fca61ed97be513ed9e1e4153e43cd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a940a3771e98c08da18307b2309ca7357"><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_1ThreadSnapshotWin.html#a940a3771e98c08da18307b2309ca7357">Context</a> () const override</td></tr>
<tr class="memdesc:a940a3771e98c08da18307b2309ca7357"><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 threads CPU context. <a href="#a940a3771e98c08da18307b2309ca7357">More...</a><br /></td></tr>
<tr class="separator:a940a3771e98c08da18307b2309ca7357"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac069bf4439cbb2be3b243460d7717826"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classcrashpad_1_1MemorySnapshot.html">MemorySnapshot</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1internal_1_1ThreadSnapshotWin.html#ac069bf4439cbb2be3b243460d7717826">Stack</a> () const override</td></tr>
<tr class="memdesc:ac069bf4439cbb2be3b243460d7717826"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a <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> object corresponding to the memory region that contains the threads stack, or <code>nullptr</code> if no stack region is available. <a href="#ac069bf4439cbb2be3b243460d7717826">More...</a><br /></td></tr>
<tr class="separator:ac069bf4439cbb2be3b243460d7717826"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaedbdde56b7ba7c6c271758da0fcb1e2"><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1internal_1_1ThreadSnapshotWin.html#aaedbdde56b7ba7c6c271758da0fcb1e2">ThreadID</a> () const override</td></tr>
<tr class="memdesc:aaedbdde56b7ba7c6c271758da0fcb1e2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the threads identifier. <a href="#aaedbdde56b7ba7c6c271758da0fcb1e2">More...</a><br /></td></tr>
<tr class="separator:aaedbdde56b7ba7c6c271758da0fcb1e2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad0f0966f362f6e02f59d3aa436990a15"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1internal_1_1ThreadSnapshotWin.html#ad0f0966f362f6e02f59d3aa436990a15">SuspendCount</a> () const override</td></tr>
<tr class="memdesc:ad0f0966f362f6e02f59d3aa436990a15"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the threads suspend count. <a href="#ad0f0966f362f6e02f59d3aa436990a15">More...</a><br /></td></tr>
<tr class="separator:ad0f0966f362f6e02f59d3aa436990a15"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a84dae6824c9bda4fe6d459ea032dd28a"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1internal_1_1ThreadSnapshotWin.html#a84dae6824c9bda4fe6d459ea032dd28a">Priority</a> () const override</td></tr>
<tr class="memdesc:a84dae6824c9bda4fe6d459ea032dd28a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the threads priority. <a href="#a84dae6824c9bda4fe6d459ea032dd28a">More...</a><br /></td></tr>
<tr class="separator:a84dae6824c9bda4fe6d459ea032dd28a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac1d36f879e8f4ccc6e195b4ef64cf1c7"><td class="memItemLeft" align="right" valign="top"><a id="ac1d36f879e8f4ccc6e195b4ef64cf1c7"></a>
uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1internal_1_1ThreadSnapshotWin.html#ac1d36f879e8f4ccc6e195b4ef64cf1c7">ThreadSpecificDataAddress</a> () const override</td></tr>
<tr class="memdesc:ac1d36f879e8f4ccc6e195b4ef64cf1c7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the base address of a region used to store thread-specific data. <br /></td></tr>
<tr class="separator:ac1d36f879e8f4ccc6e195b4ef64cf1c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a00c30606d4e1a7a8f43b4c89b3fc4e8e"><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_1ThreadSnapshotWin.html#a00c30606d4e1a7a8f43b4c89b3fc4e8e">ExtraMemory</a> () const override</td></tr>
<tr class="memdesc:a00c30606d4e1a7a8f43b4c89b3fc4e8e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a vector of additional memory blocks that should be included in a minidump. <a href="#a00c30606d4e1a7a8f43b4c89b3fc4e8e">More...</a><br /></td></tr>
<tr class="separator:a00c30606d4e1a7a8f43b4c89b3fc4e8e"><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>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> of a thread in a running (or crashed) process on a Windows system. </p>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a id="a940a3771e98c08da18307b2309ca7357"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a940a3771e98c08da18307b2309ca7357">&#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::ThreadSnapshotWin::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 threads CPU context. </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_1ThreadSnapshot.html#a6e227ceaec1f06711d620a99631ec98a">crashpad::ThreadSnapshot</a>.</p>
</div>
</div>
<a id="a00c30606d4e1a7a8f43b4c89b3fc4e8e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a00c30606d4e1a7a8f43b4c89b3fc4e8e">&#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::ThreadSnapshotWin::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_1ThreadSnapshot.html#a983c5e668ae54cbf8f4348f95da4afc8">crashpad::ThreadSnapshot</a>.</p>
</div>
</div>
<a id="a9a4fca61ed97be513ed9e1e4153e43cd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9a4fca61ed97be513ed9e1e4153e43cd">&#9670;&nbsp;</a></span>Initialize()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool crashpad::internal::ThreadSnapshotWin::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">const <a class="el" href="structcrashpad_1_1ProcessReaderWin_1_1Thread.html">ProcessReaderWin::Thread</a> &amp;&#160;</td>
<td class="paramname"><em>process_reader_thread</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t *&#160;</td>
<td class="paramname"><em>gather_indirectly_referenced_memory_bytes_remaining</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 containing the thread. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">process_reader_thread</td><td>The thread within the <a class="el" href="classcrashpad_1_1ProcessReaderWin.html" title="Accesses information about another process, identified by a HANDLE. ">ProcessReaderWin</a> for which the snapshot should be created. </td></tr>
<tr><td class="paramdir">[in,out]</td><td class="paramname">gather_indirectly_referenced_memory_bytes_remaining</td><td>If non-null, add extra memory regions to the snapshot pointed to by the thread's stack. The size of the regions added is subtracted from the count, and when it's <code>0</code>, no more regions will be added.</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="a84dae6824c9bda4fe6d459ea032dd28a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a84dae6824c9bda4fe6d459ea032dd28a">&#9670;&nbsp;</a></span>Priority()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">int crashpad::internal::ThreadSnapshotWin::Priority </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 threads priority. </p>
<p>Threads with higher priorities will have higher priority values. </p>
<p>Implements <a class="el" href="classcrashpad_1_1ThreadSnapshot.html#affbf3f8bee03bd703bc2833c4e714f70">crashpad::ThreadSnapshot</a>.</p>
</div>
</div>
<a id="ac069bf4439cbb2be3b243460d7717826"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac069bf4439cbb2be3b243460d7717826">&#9670;&nbsp;</a></span>Stack()</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="classcrashpad_1_1MemorySnapshot.html">MemorySnapshot</a> * crashpad::internal::ThreadSnapshotWin::Stack </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="classcrashpad_1_1MemorySnapshot.html" title="An abstract interface to a snapshot representing a region of memory present in a snapshot process...">MemorySnapshot</a> object corresponding to the memory region that contains the threads stack, or <code>nullptr</code> if no stack region is available. </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_1ThreadSnapshot.html#a4f0eadc03965ea69a6b0462f878dd628">crashpad::ThreadSnapshot</a>.</p>
</div>
</div>
<a id="ad0f0966f362f6e02f59d3aa436990a15"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad0f0966f362f6e02f59d3aa436990a15">&#9670;&nbsp;</a></span>SuspendCount()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">int crashpad::internal::ThreadSnapshotWin::SuspendCount </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 threads suspend count. </p>
<p>A suspend count of <code>0</code> denotes a schedulable (not suspended) thread. </p>
<p>Implements <a class="el" href="classcrashpad_1_1ThreadSnapshot.html#abe00a7e9cbc55366a545700517762d5c">crashpad::ThreadSnapshot</a>.</p>
</div>
</div>
<a id="aaedbdde56b7ba7c6c271758da0fcb1e2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aaedbdde56b7ba7c6c271758da0fcb1e2">&#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::ThreadSnapshotWin::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 threads identifier. </p>
<p>Thread identifiers are at least unique within a process, and may be unique system-wide. </p>
<p>Implements <a class="el" href="classcrashpad_1_1ThreadSnapshot.html#a3c953575fadb934cd5f163560df149da">crashpad::ThreadSnapshot</a>.</p>
</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li>snapshot/win/thread_snapshot_win.h</li>
<li>snapshot/win/thread_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>