<ahref="#pub-methods">Public Member Functions</a>|
<ahref="#pro-methods">Protected Member Functions</a>|
<ahref="classcrashpad_1_1MinidumpThreadWriter-members.html">List of all members</a></div>
<divclass="headertitle">
<divclass="title">crashpad::MinidumpThreadWriter Class Reference<spanclass="mlabels"><spanclass="mlabel">final</span></span></div></div>
</div><!--header-->
<divclass="contents">
<p>The writer for a <aclass="el"href="structMINIDUMP__THREAD.html"title="Information about a specific thread within the process. ">MINIDUMP_THREAD</a> object in a minidump file.
<areahref="classcrashpad_1_1internal_1_1MinidumpWritable.html"title="The base class for all content that might be written to a minidump file. "alt="crashpad::internal::MinidumpWritable"shape="rect"coords="0,0,219,24"/>
<trclass="memdesc:abd28c7935685f3edf6504cd0aa8de302"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Initializes the <aclass="el"href="structMINIDUMP__THREAD.html"title="Information about a specific thread within the process. ">MINIDUMP_THREAD</a> based on <em>thread_snapshot</em>. <ahref="#abd28c7935685f3edf6504cd0aa8de302">More...</a><br/></td></tr>
<trclass="memdesc:a4926653de3c9e169541a61508b4e36f6"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Returns a <aclass="el"href="structMINIDUMP__THREAD.html"title="Information about a specific thread within the process. ">MINIDUMP_THREAD</a> referencing this object’s data. <ahref="#a4926653de3c9e169541a61508b4e36f6">More...</a><br/></td></tr>
<trclass="memdesc:a9fdcc0a4e701ff08d15c82c54eae6df4"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Returns a <aclass="el"href="classcrashpad_1_1SnapshotMinidumpMemoryWriter.html"title="The base class for writers of memory ranges pointed to by MINIDUMP_MEMORY_DESCRIPTOR objects in a min...">SnapshotMinidumpMemoryWriter</a> that will write the memory region corresponding to this object’s stack. <ahref="#a9fdcc0a4e701ff08d15c82c54eae6df4">More...</a><br/></td></tr>
<trclass="memdesc:a008639c84660538ce8a810021b7d9fa7"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Arranges for <aclass="el"href="structMINIDUMP__THREAD.html#a4affab2d1a0995fdb085d302d78fbb81"title="A snapshot of the thread’s stack. ">MINIDUMP_THREAD::Stack</a> to point to the MINIDUMP_MEMORY object to be written by <em>stack</em>. <ahref="#a008639c84660538ce8a810021b7d9fa7">More...</a><br/></td></tr>
<trclass="memdesc:ae90c3afe6034b39f729ed87d00858cff"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Arranges for <aclass="el"href="structMINIDUMP__THREAD.html#a4bea75c1a353e346689b97aeaea22184"title="A pointer to a CPU-specific CONTEXT structure containing the thread’s context at the time the snapsh...">MINIDUMP_THREAD::ThreadContext</a> to point to the CPU context to be written by <em>context</em>. <ahref="#ae90c3afe6034b39f729ed87d00858cff">More...</a><br/></td></tr>
<trclass="memdesc:a68d1707d04cdcddbf32fae18dec62f65"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Sets <aclass="el"href="structMINIDUMP__THREAD.html#a1d2508187af6c3ec09e5836badb56fd2"title="The thread’s ID. This may be referenced by MINIDUMP_EXCEPTION_STREAM::ThreadId. ">MINIDUMP_THREAD::ThreadId</a>. <br/></td></tr>
<trclass="memdesc:a4c3d820086f5085921691b85a85de382"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Sets <aclass="el"href="structMINIDUMP__THREAD.html#a78e39b500ecbe680092406abd6aee3f3"title="The address of the thread’s thread environment block in the address space of the process that the mi...">MINIDUMP_THREAD::Teb</a>. <br/></td></tr>
<trclass="inherit_header pub_methods_classcrashpad_1_1internal_1_1MinidumpWritable"><tdcolspan="2"onclick="javascript:toggleInherit('pub_methods_classcrashpad_1_1internal_1_1MinidumpWritable')"><imgsrc="closed.png"alt="-"/> Public Member Functions inherited from <aclass="el"href="classcrashpad_1_1internal_1_1MinidumpWritable.html">crashpad::internal::MinidumpWritable</a></td></tr>
<trclass="memdesc:a24507e918299cb566c7f15207de83a7f inherit pub_methods_classcrashpad_1_1internal_1_1MinidumpWritable"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Writes an object and all of its children to a minidump file. <ahref="classcrashpad_1_1internal_1_1MinidumpWritable.html#a24507e918299cb566c7f15207de83a7f">More...</a><br/></td></tr>
<trclass="memdesc:a686683d78f099a07e2a1df8e6b567d37 inherit pub_methods_classcrashpad_1_1internal_1_1MinidumpWritable"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Registers a file offset pointer as one that should point to the object on which this method is called. <ahref="classcrashpad_1_1internal_1_1MinidumpWritable.html#a686683d78f099a07e2a1df8e6b567d37">More...</a><br/></td></tr>
<trclass="memdesc:aed263c64ecb0597696d080e395af6400 inherit pub_methods_classcrashpad_1_1internal_1_1MinidumpWritable"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Registers a location descriptor as one that should point to the object on which this method is called. <ahref="classcrashpad_1_1internal_1_1MinidumpWritable.html#aed263c64ecb0597696d080e395af6400">More...</a><br/></td></tr>
<trclass="memdesc:a15c9b51f3bd39e89030265ae27c361c9"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Transitions the object from <aclass="el"href="classcrashpad_1_1internal_1_1MinidumpWritable.html#ac14e05f291f5fa713b5ec82a208fa7c7a18337604dcbdbdb23ed51810f0587665"title="The object’s properties can be modified. ">kStateMutable</a> to <aclass="el"href="classcrashpad_1_1internal_1_1MinidumpWritable.html#ac14e05f291f5fa713b5ec82a208fa7c7af98547144e0e8d4f878f725ef5c0d611"title="The object is “frozen”. ">kStateFrozen</a>. <ahref="#a15c9b51f3bd39e89030265ae27c361c9">More...</a><br/></td></tr>
<trclass="memdesc:a53c79c3e9602968e69f53aa8b81fb92d"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Returns the amount of space that this object will consume when written to a minidump file, in bytes, not including any leading or trailing padding necessary to maintain proper alignment. <ahref="#a53c79c3e9602968e69f53aa8b81fb92d">More...</a><br/></td></tr>
<trclass="memdesc:abfc2c5b265c0e7519edfbe1cc81442d0"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Returns the object’s children. <ahref="#abfc2c5b265c0e7519edfbe1cc81442d0">More...</a><br/></td></tr>
<trclass="memdesc:ac8c63d982e88f2624885d3c94b5f5edc"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Writes the object’s content. <ahref="#ac8c63d982e88f2624885d3c94b5f5edc">More...</a><br/></td></tr>
<trclass="inherit_header pro_methods_classcrashpad_1_1internal_1_1MinidumpWritable"><tdcolspan="2"onclick="javascript:toggleInherit('pro_methods_classcrashpad_1_1internal_1_1MinidumpWritable')"><imgsrc="closed.png"alt="-"/> Protected Member Functions inherited from <aclass="el"href="classcrashpad_1_1internal_1_1MinidumpWritable.html">crashpad::internal::MinidumpWritable</a></td></tr>
<trclass="memdesc:aed27972114564f99cda1e7648aec807a inherit pro_methods_classcrashpad_1_1internal_1_1MinidumpWritable"><tdclass="mdescLeft"> </td><tdclass="mdescRight">The state of the object. <br/></td></tr>
<trclass="memdesc:a8439e05e21ccb78a4d61cd6e817d3bf5 inherit pro_methods_classcrashpad_1_1internal_1_1MinidumpWritable"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Prepares the object to be written at a known file offset, transitioning it from <aclass="el"href="classcrashpad_1_1internal_1_1MinidumpWritable.html#ac14e05f291f5fa713b5ec82a208fa7c7af98547144e0e8d4f878f725ef5c0d611"title="The object is “frozen”. ">kStateFrozen</a> to <aclass="el"href="classcrashpad_1_1internal_1_1MinidumpWritable.html#ac14e05f291f5fa713b5ec82a208fa7c7a87483823ca30a8257b2a5fbd21805bcd"title="The object is writable. ">kStateWritable</a>. <ahref="classcrashpad_1_1internal_1_1MinidumpWritable.html#a8439e05e21ccb78a4d61cd6e817d3bf5">More...</a><br/></td></tr>
<trclass="memdesc:a2416cb821816b769d95b92e486713ebf inherit pro_methods_classcrashpad_1_1internal_1_1MinidumpWritable"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Called once an object’s writable file offset is determined, as it transitions into <aclass="el"href="classcrashpad_1_1internal_1_1MinidumpWritable.html#ac14e05f291f5fa713b5ec82a208fa7c7a87483823ca30a8257b2a5fbd21805bcd"title="The object is writable. ">kStateWritable</a>. <ahref="classcrashpad_1_1internal_1_1MinidumpWritable.html#a2416cb821816b769d95b92e486713ebf">More...</a><br/></td></tr>
<trclass="memdesc:ab82b1e92ae0eced8b8e2efe957411773 inherit pro_methods_classcrashpad_1_1internal_1_1MinidumpWritable"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Writes the object, transitioning it from <aclass="el"href="classcrashpad_1_1internal_1_1MinidumpWritable.html#ac14e05f291f5fa713b5ec82a208fa7c7a87483823ca30a8257b2a5fbd21805bcd"title="The object is writable. ">kStateWritable</a> to <aclass="el"href="classcrashpad_1_1internal_1_1MinidumpWritable.html#ac14e05f291f5fa713b5ec82a208fa7c7af0d794ed29c320fcf35c71f40cc6a510"title="The object has been written to a minidump file. ">kStateWritten</a>. <ahref="classcrashpad_1_1internal_1_1MinidumpWritable.html#ab82b1e92ae0eced8b8e2efe957411773">More...</a><br/></td></tr>
<trclass="memitem:ac14e05f291f5fa713b5ec82a208fa7c7 inherit pro_types_classcrashpad_1_1internal_1_1MinidumpWritable"><tdclass="memItemLeft"align="right"valign="top">enum  </td><tdclass="memItemRight"valign="bottom"><aclass="el"href="classcrashpad_1_1internal_1_1MinidumpWritable.html#ac14e05f291f5fa713b5ec82a208fa7c7">State</a><trclass="memdesc:ac14e05f291f5fa713b5ec82a208fa7c7"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Identifies the state of an object. <ahref="classcrashpad_1_1internal_1_1MinidumpWritable.html#ac14e05f291f5fa713b5ec82a208fa7c7">More...</a><br/></td></tr>
<trclass="memitem:a009f007265d64a5fb416848480a00ae9 inherit pro_types_classcrashpad_1_1internal_1_1MinidumpWritable"><tdclass="memItemLeft"align="right"valign="top">enum  </td><tdclass="memItemRight"valign="bottom"><aclass="el"href="classcrashpad_1_1internal_1_1MinidumpWritable.html#a009f007265d64a5fb416848480a00ae9">Phase</a><trclass="memdesc:a009f007265d64a5fb416848480a00ae9"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Identifies the phase during which an object will be written to a minidump file. <ahref="classcrashpad_1_1internal_1_1MinidumpWritable.html#a009f007265d64a5fb416848480a00ae9">More...</a><br/></td></tr>
<trclass="memdesc:ac2b31049c4fedaabb24857d82531d6d6 inherit pro_static_attribs_classcrashpad_1_1internal_1_1MinidumpWritable"><tdclass="mdescLeft"> </td><tdclass="mdescRight">A size value used to signal failure by methods that return <code>size_t</code>. <br/></td></tr>
<divclass="textblock"><p>The writer for a <aclass="el"href="structMINIDUMP__THREAD.html"title="Information about a specific thread within the process. ">MINIDUMP_THREAD</a> object in a minidump file. </p>
<p>Because <aclass="el"href="structMINIDUMP__THREAD.html"title="Information about a specific thread within the process. ">MINIDUMP_THREAD</a> objects only appear as elements of <aclass="el"href="structMINIDUMP__THREAD__LIST.html"title="Information about all threads within the process. ">MINIDUMP_THREAD_LIST</a> objects, this class does not write any data on its own. It makes its <aclass="el"href="structMINIDUMP__THREAD.html"title="Information about a specific thread within the process. ">MINIDUMP_THREAD</a> data available to its <aclass="el"href="classcrashpad_1_1MinidumpThreadListWriter.html"title="The writer for a MINIDUMP_THREAD_LIST stream in a minidump file, containing a list of MINIDUMP_THREAD...">MinidumpThreadListWriter</a> parent, which writes it as part of a <aclass="el"href="structMINIDUMP__THREAD__LIST.html"title="Information about all threads within the process. ">MINIDUMP_THREAD_LIST</a>. </p>
</div><h2class="groupheader">Member Function Documentation</h2>
<dlclass="section note"><dt>Note</dt><dd>Valid in <aclass="el"href="classcrashpad_1_1internal_1_1MinidumpWritable.html#ac14e05f291f5fa713b5ec82a208fa7c7af98547144e0e8d4f878f725ef5c0d611"title="The object is “frozen”. ">kStateFrozen</a> or any subsequent state. </dd></dl>
<p>Reimplemented from <aclass="el"href="classcrashpad_1_1internal_1_1MinidumpWritable.html#a32460b7fe2154fbabc3c58bf10dc7861">crashpad::internal::MinidumpWritable</a>.</p>
<p>Transitions the object from <aclass="el"href="classcrashpad_1_1internal_1_1MinidumpWritable.html#ac14e05f291f5fa713b5ec82a208fa7c7a18337604dcbdbdb23ed51810f0587665"title="The object’s properties can be modified. ">kStateMutable</a> to <aclass="el"href="classcrashpad_1_1internal_1_1MinidumpWritable.html#ac14e05f291f5fa713b5ec82a208fa7c7af98547144e0e8d4f878f725ef5c0d611"title="The object is “frozen”. ">kStateFrozen</a>. </p>
<p>The default implementation marks the object as frozen and recursively calls <aclass="el"href="classcrashpad_1_1MinidumpThreadWriter.html#a15c9b51f3bd39e89030265ae27c361c9"title="Transitions the object from kStateMutable to kStateFrozen. ">Freeze()</a> on all of its children. Subclasses may override this method to perform processing that should only be done once callers have finished populating an object with data. Typically, a subclass implementation would call <aclass="el"href="classcrashpad_1_1internal_1_1MinidumpWritable.html#a686683d78f099a07e2a1df8e6b567d37"title="Registers a file offset pointer as one that should point to the object on which this method is called...">RegisterRVA()</a> or <aclass="el"href="classcrashpad_1_1internal_1_1MinidumpWritable.html#aed263c64ecb0597696d080e395af6400"title="Registers a location descriptor as one that should point to the object on which this method is called...">RegisterLocationDescriptor()</a> on other objects as appropriate, because at the time <aclass="el"href="classcrashpad_1_1MinidumpThreadWriter.html#a15c9b51f3bd39e89030265ae27c361c9"title="Transitions the object from kStateMutable to kStateFrozen. ">Freeze()</a> runs, the in-memory locations of RVAs and location descriptors are known and will not change for the remaining duration of an object’s lifetime.</p>
<dlclass="section return"><dt>Returns</dt><dd><code>true</code> on success. <code>false</code> on failure, with an appropriate message logged. </dd></dl>
<p>Reimplemented from <aclass="el"href="classcrashpad_1_1internal_1_1MinidumpWritable.html#a773db80946a99c6a3cc29c7d4dd77bd6">crashpad::internal::MinidumpWritable</a>.</p>
<p>Initializes the <aclass="el"href="structMINIDUMP__THREAD.html"title="Information about a specific thread within the process. ">MINIDUMP_THREAD</a> based on <em>thread_snapshot</em>. </p>
<dlclass="params"><dt>Parameters</dt><dd>
<tableclass="params">
<tr><tdclass="paramdir">[in]</td><tdclass="paramname">thread_snapshot</td><td>The thread snapshot to use as source data. </td></tr>
<tr><tdclass="paramdir">[in]</td><tdclass="paramname">thread_id_map</td><td>A MinidumpThreadIDMap to be consulted to determine the 32-bit minidump thread ID to use for <em>thread_snapshot</em>.</td></tr>
</table>
</dd>
</dl>
<dlclass="section note"><dt>Note</dt><dd>Valid in <aclass="el"href="classcrashpad_1_1internal_1_1MinidumpWritable.html#ac14e05f291f5fa713b5ec82a208fa7c7a18337604dcbdbdb23ed51810f0587665"title="The object’s properties can be modified. ">kStateMutable</a>. No mutator methods may be called before this method, and it is not normally necessary to call any mutator methods after this method. </dd></dl>
<p>Returns a <aclass="el"href="structMINIDUMP__THREAD.html"title="Information about a specific thread within the process. ">MINIDUMP_THREAD</a> referencing this object’s data. </p>
<p>This method is expected to be called by a <aclass="el"href="classcrashpad_1_1MinidumpThreadListWriter.html"title="The writer for a MINIDUMP_THREAD_LIST stream in a minidump file, containing a list of MINIDUMP_THREAD...">MinidumpThreadListWriter</a> in order to obtain a <aclass="el"href="structMINIDUMP__THREAD.html"title="Information about a specific thread within the process. ">MINIDUMP_THREAD</a> to include in its list.</p>
<dlclass="section note"><dt>Note</dt><dd>Valid in <aclass="el"href="classcrashpad_1_1internal_1_1MinidumpWritable.html#ac14e05f291f5fa713b5ec82a208fa7c7a87483823ca30a8257b2a5fbd21805bcd"title="The object is writable. ">kStateWritable</a>. </dd></dl>
<p>Arranges for <aclass="el"href="structMINIDUMP__THREAD.html#a4bea75c1a353e346689b97aeaea22184"title="A pointer to a CPU-specific CONTEXT structure containing the thread’s context at the time the snapsh...">MINIDUMP_THREAD::ThreadContext</a> to point to the CPU context to be written by <em>context</em>. </p>
<p>A context is required in all <aclass="el"href="structMINIDUMP__THREAD.html"title="Information about a specific thread within the process. ">MINIDUMP_THREAD</a> objects.</p>
<p>This object takes ownership of <em>context</em> and becomes its parent in the overall tree of <aclass="el"href="classcrashpad_1_1internal_1_1MinidumpWritable.html"title="The base class for all content that might be written to a minidump file. ">internal::MinidumpWritable</a> objects.</p>
<dlclass="section note"><dt>Note</dt><dd>Valid in <aclass="el"href="classcrashpad_1_1internal_1_1MinidumpWritable.html#ac14e05f291f5fa713b5ec82a208fa7c7a18337604dcbdbdb23ed51810f0587665"title="The object’s properties can be modified. ">kStateMutable</a>. </dd></dl>
<p>Arranges for <aclass="el"href="structMINIDUMP__THREAD.html#a4affab2d1a0995fdb085d302d78fbb81"title="A snapshot of the thread’s stack. ">MINIDUMP_THREAD::Stack</a> to point to the MINIDUMP_MEMORY object to be written by <em>stack</em>. </p>
<p>This object takes ownership of <em>stack</em> and becomes its parent in the overall tree of <aclass="el"href="classcrashpad_1_1internal_1_1MinidumpWritable.html"title="The base class for all content that might be written to a minidump file. ">internal::MinidumpWritable</a> objects.</p>
<dlclass="section note"><dt>Note</dt><dd>Valid in <aclass="el"href="classcrashpad_1_1internal_1_1MinidumpWritable.html#ac14e05f291f5fa713b5ec82a208fa7c7a18337604dcbdbdb23ed51810f0587665"title="The object’s properties can be modified. ">kStateMutable</a>. </dd></dl>
<p>Returns the amount of space that this object will consume when written to a minidump file, in bytes, not including any leading or trailing padding necessary to maintain proper alignment. </p>
<dlclass="section note"><dt>Note</dt><dd>Valid in <aclass="el"href="classcrashpad_1_1internal_1_1MinidumpWritable.html#ac14e05f291f5fa713b5ec82a208fa7c7af98547144e0e8d4f878f725ef5c0d611"title="The object is “frozen”. ">kStateFrozen</a> or any subsequent state. </dd></dl>
<p>Returns a <aclass="el"href="classcrashpad_1_1SnapshotMinidumpMemoryWriter.html"title="The base class for writers of memory ranges pointed to by MINIDUMP_MEMORY_DESCRIPTOR objects in a min...">SnapshotMinidumpMemoryWriter</a> that will write the memory region corresponding to this object’s stack. </p>
<p>This method is provided so that <aclass="el"href="classcrashpad_1_1MinidumpThreadListWriter.html"title="The writer for a MINIDUMP_THREAD_LIST stream in a minidump file, containing a list of MINIDUMP_THREAD...">MinidumpThreadListWriter</a> can obtain thread stack memory regions for the purposes of adding them to a <aclass="el"href="classcrashpad_1_1MinidumpMemoryListWriter.html"title="The writer for a MINIDUMP_MEMORY_LIST stream in a minidump file, containing a list of MINIDUMP_MEMORY...">MinidumpMemoryListWriter</a> (configured by calling <aclass="el"href="classcrashpad_1_1MinidumpThreadListWriter.html#a2c35be84e46f4956d67fd4dfa6c437c2"title="Sets the MinidumpMemoryListWriter that each thread’s stack memory region should be added to as extra...">MinidumpThreadListWriter::SetMemoryListWriter()</a>) by calling <aclass="el"href="classcrashpad_1_1MinidumpMemoryListWriter.html#ab5ea390ff195401d99da51291ba1d595"title="Adds a SnapshotMinidumpMemoryWriter that’s a child of another internal::MinidumpWritable object to t...">MinidumpMemoryListWriter::AddExtraMemory()</a>.</p>
<tr><tdclass="paramdir">[in]</td><tdclass="paramname">file_writer</td><td>The file writer to receive the object’s content.</td></tr>
</table>
</dd>
</dl>
<dlclass="section return"><dt>Returns</dt><dd><code>true</code> on success. <code>false</code> on error, indicating that the content could not be written to the minidump file.</dd></dl>
<dlclass="section note"><dt>Note</dt><dd>Valid in <aclass="el"href="classcrashpad_1_1internal_1_1MinidumpWritable.html#ac14e05f291f5fa713b5ec82a208fa7c7a87483823ca30a8257b2a5fbd21805bcd"title="The object is writable. ">kStateWritable</a>. The object will transition to <aclass="el"href="classcrashpad_1_1internal_1_1MinidumpWritable.html#ac14e05f291f5fa713b5ec82a208fa7c7af0d794ed29c320fcf35c71f40cc6a510"title="The object has been written to a minidump file. ">kStateWritten</a> after this method returns. </dd></dl>