blob: f5cf5ebf9bc87866e18f3b9cad99877a36b5d485 [file] [log] [blame]
<!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::MinidumpFileWriter 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="classcrashpad_1_1MinidumpFileWriter.html">MinidumpFileWriter</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="classcrashpad_1_1MinidumpFileWriter-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">crashpad::MinidumpFileWriter Class Reference<span class="mlabels"><span class="mlabel">final</span></span></div> </div>
</div><!--header-->
<div class="contents">
<p>The root-level object in a minidump file.
<a href="classcrashpad_1_1MinidumpFileWriter.html#details">More...</a></p>
<p><code>#include &quot;minidump/minidump_file_writer.h&quot;</code></p>
<div class="dynheader">
Inheritance diagram for crashpad::MinidumpFileWriter:</div>
<div class="dyncontent">
<div class="center">
<img src="classcrashpad_1_1MinidumpFileWriter.png" usemap="#crashpad::MinidumpFileWriter_map" alt=""/>
<map id="crashpad::MinidumpFileWriter_map" name="crashpad::MinidumpFileWriter_map">
<area href="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"/>
</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:ab75b7c7565f0f85054578d6c39064d5a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1MinidumpFileWriter.html#ab75b7c7565f0f85054578d6c39064d5a">InitializeFromSnapshot</a> (const <a class="el" href="classcrashpad_1_1ProcessSnapshot.html">ProcessSnapshot</a> *process_snapshot)</td></tr>
<tr class="memdesc:ab75b7c7565f0f85054578d6c39064d5a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes the <a class="el" href="classcrashpad_1_1MinidumpFileWriter.html" title="The root-level object in a minidump file.">MinidumpFileWriter</a> and populates it with appropriate child streams based on <em>process_snapshot</em>. <a href="classcrashpad_1_1MinidumpFileWriter.html#ab75b7c7565f0f85054578d6c39064d5a">More...</a><br /></td></tr>
<tr class="separator:ab75b7c7565f0f85054578d6c39064d5a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adceffe1f226fce650a0cbdf1a61a29e6"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1MinidumpFileWriter.html#adceffe1f226fce650a0cbdf1a61a29e6">SetTimestamp</a> (time_t timestamp)</td></tr>
<tr class="memdesc:adceffe1f226fce650a0cbdf1a61a29e6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets MINIDUMP_HEADER::Timestamp. <a href="classcrashpad_1_1MinidumpFileWriter.html#adceffe1f226fce650a0cbdf1a61a29e6">More...</a><br /></td></tr>
<tr class="separator:adceffe1f226fce650a0cbdf1a61a29e6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5901df68cecde91b8c5c4c3b7cad5a50"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1MinidumpFileWriter.html#a5901df68cecde91b8c5c4c3b7cad5a50">AddStream</a> (std::unique_ptr&lt; <a class="el" href="classcrashpad_1_1internal_1_1MinidumpStreamWriter.html">internal::MinidumpStreamWriter</a> &gt; stream)</td></tr>
<tr class="memdesc:a5901df68cecde91b8c5c4c3b7cad5a50"><td class="mdescLeft">&#160;</td><td class="mdescRight">Adds a stream to the minidump file and arranges for a <a class="el" href="structMINIDUMP__DIRECTORY.html" title="A pointer to a stream within a minidump file.">MINIDUMP_DIRECTORY</a> entry to point to it. <a href="classcrashpad_1_1MinidumpFileWriter.html#a5901df68cecde91b8c5c4c3b7cad5a50">More...</a><br /></td></tr>
<tr class="separator:a5901df68cecde91b8c5c4c3b7cad5a50"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adced3695b26f78e901270b89582a224a"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1MinidumpFileWriter.html#adced3695b26f78e901270b89582a224a">AddUserExtensionStream</a> (std::unique_ptr&lt; <a class="el" href="classcrashpad_1_1MinidumpUserExtensionStreamDataSource.html">MinidumpUserExtensionStreamDataSource</a> &gt; user_extension_stream_data)</td></tr>
<tr class="memdesc:adced3695b26f78e901270b89582a224a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Adds a user extension stream to the minidump file and arranges for a <a class="el" href="structMINIDUMP__DIRECTORY.html" title="A pointer to a stream within a minidump file.">MINIDUMP_DIRECTORY</a> entry to point to it. <a href="classcrashpad_1_1MinidumpFileWriter.html#adced3695b26f78e901270b89582a224a">More...</a><br /></td></tr>
<tr class="separator:adced3695b26f78e901270b89582a224a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad8eeea6397f565a17455c091b0a3f6a6"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1MinidumpFileWriter.html#ad8eeea6397f565a17455c091b0a3f6a6">WriteEverything</a> (<a class="el" href="classcrashpad_1_1FileWriterInterface.html">FileWriterInterface</a> *file_writer) override</td></tr>
<tr class="memdesc:ad8eeea6397f565a17455c091b0a3f6a6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Writes an object and all of its children to a minidump file. <a href="classcrashpad_1_1MinidumpFileWriter.html#ad8eeea6397f565a17455c091b0a3f6a6">More...</a><br /></td></tr>
<tr class="separator:ad8eeea6397f565a17455c091b0a3f6a6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3240f18789b2d2e1e6947d24ba301af1"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1MinidumpFileWriter.html#a3240f18789b2d2e1e6947d24ba301af1">WriteMinidump</a> (<a class="el" href="classcrashpad_1_1FileWriterInterface.html">FileWriterInterface</a> *file_writer, bool allow_seek)</td></tr>
<tr class="memdesc:a3240f18789b2d2e1e6947d24ba301af1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Writes this object to a minidump file. <a href="classcrashpad_1_1MinidumpFileWriter.html#a3240f18789b2d2e1e6947d24ba301af1">More...</a><br /></td></tr>
<tr class="separator:a3240f18789b2d2e1e6947d24ba301af1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classcrashpad_1_1internal_1_1MinidumpWritable"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classcrashpad_1_1internal_1_1MinidumpWritable')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classcrashpad_1_1internal_1_1MinidumpWritable.html">crashpad::internal::MinidumpWritable</a></td></tr>
<tr class="memitem:a686683d78f099a07e2a1df8e6b567d37 inherit pub_methods_classcrashpad_1_1internal_1_1MinidumpWritable"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1internal_1_1MinidumpWritable.html#a686683d78f099a07e2a1df8e6b567d37">RegisterRVA</a> (<a class="el" href="dbghelp_8h.html#acf465a1a77ecf067a9d946583bc6a3f8">RVA</a> *rva)</td></tr>
<tr class="memdesc:a686683d78f099a07e2a1df8e6b567d37 inherit pub_methods_classcrashpad_1_1internal_1_1MinidumpWritable"><td class="mdescLeft">&#160;</td><td class="mdescRight">Registers a file offset pointer as one that should point to the object on which this method is called. <a href="classcrashpad_1_1internal_1_1MinidumpWritable.html#a686683d78f099a07e2a1df8e6b567d37">More...</a><br /></td></tr>
<tr class="separator:a686683d78f099a07e2a1df8e6b567d37 inherit pub_methods_classcrashpad_1_1internal_1_1MinidumpWritable"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aed263c64ecb0597696d080e395af6400 inherit pub_methods_classcrashpad_1_1internal_1_1MinidumpWritable"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1internal_1_1MinidumpWritable.html#aed263c64ecb0597696d080e395af6400">RegisterLocationDescriptor</a> (<a class="el" href="structMINIDUMP__LOCATION__DESCRIPTOR.html">MINIDUMP_LOCATION_DESCRIPTOR</a> *location_descriptor)</td></tr>
<tr class="memdesc:aed263c64ecb0597696d080e395af6400 inherit pub_methods_classcrashpad_1_1internal_1_1MinidumpWritable"><td class="mdescLeft">&#160;</td><td class="mdescRight">Registers a location descriptor as one that should point to the object on which this method is called. <a href="classcrashpad_1_1internal_1_1MinidumpWritable.html#aed263c64ecb0597696d080e395af6400">More...</a><br /></td></tr>
<tr class="separator:aed263c64ecb0597696d080e395af6400 inherit pub_methods_classcrashpad_1_1internal_1_1MinidumpWritable"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr class="memitem:a5592aa929693a02f7cb81797d07b1dd8"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1MinidumpFileWriter.html#a5592aa929693a02f7cb81797d07b1dd8">Freeze</a> () override</td></tr>
<tr class="memdesc:a5592aa929693a02f7cb81797d07b1dd8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Transitions the object from <a class="el" href="classcrashpad_1_1internal_1_1MinidumpWritable.html#ac14e05f291f5fa713b5ec82a208fa7c7a18337604dcbdbdb23ed51810f0587665" title="The object’s properties can be modified.">kStateMutable</a> to <a class="el" href="classcrashpad_1_1internal_1_1MinidumpWritable.html#ac14e05f291f5fa713b5ec82a208fa7c7af98547144e0e8d4f878f725ef5c0d611" title="The object is “frozen”.">kStateFrozen</a>. <a href="classcrashpad_1_1MinidumpFileWriter.html#a5592aa929693a02f7cb81797d07b1dd8">More...</a><br /></td></tr>
<tr class="separator:a5592aa929693a02f7cb81797d07b1dd8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad0a4247475f00ed32163757f3bc8071b"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1MinidumpFileWriter.html#ad0a4247475f00ed32163757f3bc8071b">SizeOfObject</a> () override</td></tr>
<tr class="memdesc:ad0a4247475f00ed32163757f3bc8071b"><td class="mdescLeft">&#160;</td><td class="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. <a href="classcrashpad_1_1MinidumpFileWriter.html#ad0a4247475f00ed32163757f3bc8071b">More...</a><br /></td></tr>
<tr class="separator:ad0a4247475f00ed32163757f3bc8071b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4a668939e980cb2b58931b3b7d2c155f"><td class="memItemLeft" align="right" valign="top">std::vector&lt; MinidumpWritable * &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1MinidumpFileWriter.html#a4a668939e980cb2b58931b3b7d2c155f">Children</a> () override</td></tr>
<tr class="memdesc:a4a668939e980cb2b58931b3b7d2c155f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the object’s children. <a href="classcrashpad_1_1MinidumpFileWriter.html#a4a668939e980cb2b58931b3b7d2c155f">More...</a><br /></td></tr>
<tr class="separator:a4a668939e980cb2b58931b3b7d2c155f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae9b7cef2c519dfdd5a7a06ecdd9766cc"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1MinidumpFileWriter.html#ae9b7cef2c519dfdd5a7a06ecdd9766cc">WillWriteAtOffsetImpl</a> (<a class="el" href="namespacecrashpad.html#a1e53a1957d9edcba8b406ea632b6daf2">FileOffset</a> offset) override</td></tr>
<tr class="memdesc:ae9b7cef2c519dfdd5a7a06ecdd9766cc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Called once an object’s writable file offset is determined, as it transitions into <a class="el" href="classcrashpad_1_1internal_1_1MinidumpWritable.html#ac14e05f291f5fa713b5ec82a208fa7c7a87483823ca30a8257b2a5fbd21805bcd" title="The object is writable.">kStateWritable</a>. <a href="classcrashpad_1_1MinidumpFileWriter.html#ae9b7cef2c519dfdd5a7a06ecdd9766cc">More...</a><br /></td></tr>
<tr class="separator:ae9b7cef2c519dfdd5a7a06ecdd9766cc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abad1dd1348b1224b051014498070dd9e"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1MinidumpFileWriter.html#abad1dd1348b1224b051014498070dd9e">WriteObject</a> (<a class="el" href="classcrashpad_1_1FileWriterInterface.html">FileWriterInterface</a> *file_writer) override</td></tr>
<tr class="memdesc:abad1dd1348b1224b051014498070dd9e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Writes the object’s content. <a href="classcrashpad_1_1MinidumpFileWriter.html#abad1dd1348b1224b051014498070dd9e">More...</a><br /></td></tr>
<tr class="separator:abad1dd1348b1224b051014498070dd9e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pro_methods_classcrashpad_1_1internal_1_1MinidumpWritable"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classcrashpad_1_1internal_1_1MinidumpWritable')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classcrashpad_1_1internal_1_1MinidumpWritable.html">crashpad::internal::MinidumpWritable</a></td></tr>
<tr class="memitem:aed27972114564f99cda1e7648aec807a inherit pro_methods_classcrashpad_1_1internal_1_1MinidumpWritable"><td class="memItemLeft" align="right" valign="top"><a id="aed27972114564f99cda1e7648aec807a"></a>
<a class="el" href="classcrashpad_1_1internal_1_1MinidumpWritable.html#ac14e05f291f5fa713b5ec82a208fa7c7">State</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1internal_1_1MinidumpWritable.html#aed27972114564f99cda1e7648aec807a">state</a> () const</td></tr>
<tr class="memdesc:aed27972114564f99cda1e7648aec807a inherit pro_methods_classcrashpad_1_1internal_1_1MinidumpWritable"><td class="mdescLeft">&#160;</td><td class="mdescRight">The state of the object. <br /></td></tr>
<tr class="separator:aed27972114564f99cda1e7648aec807a inherit pro_methods_classcrashpad_1_1internal_1_1MinidumpWritable"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af4e92c46984eb73dbc1315ff5f4c7a9a inherit pro_methods_classcrashpad_1_1internal_1_1MinidumpWritable"><td class="memItemLeft" align="right" valign="top">virtual size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1internal_1_1MinidumpWritable.html#af4e92c46984eb73dbc1315ff5f4c7a9a">Alignment</a> ()</td></tr>
<tr class="memdesc:af4e92c46984eb73dbc1315ff5f4c7a9a inherit pro_methods_classcrashpad_1_1internal_1_1MinidumpWritable"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the object’s desired byte-boundary alignment. <a href="classcrashpad_1_1internal_1_1MinidumpWritable.html#af4e92c46984eb73dbc1315ff5f4c7a9a">More...</a><br /></td></tr>
<tr class="separator:af4e92c46984eb73dbc1315ff5f4c7a9a inherit pro_methods_classcrashpad_1_1internal_1_1MinidumpWritable"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a389b0ac1986698e80ebbc49198676ac7 inherit pro_methods_classcrashpad_1_1internal_1_1MinidumpWritable"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classcrashpad_1_1internal_1_1MinidumpWritable.html#a009f007265d64a5fb416848480a00ae9">Phase</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1internal_1_1MinidumpWritable.html#a389b0ac1986698e80ebbc49198676ac7">WritePhase</a> ()</td></tr>
<tr class="memdesc:a389b0ac1986698e80ebbc49198676ac7 inherit pro_methods_classcrashpad_1_1internal_1_1MinidumpWritable"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the object’s desired write phase. <a href="classcrashpad_1_1internal_1_1MinidumpWritable.html#a389b0ac1986698e80ebbc49198676ac7">More...</a><br /></td></tr>
<tr class="separator:a389b0ac1986698e80ebbc49198676ac7 inherit pro_methods_classcrashpad_1_1internal_1_1MinidumpWritable"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a712fac2ada227f53c55eb0c4d042f239 inherit pro_methods_classcrashpad_1_1internal_1_1MinidumpWritable"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1internal_1_1MinidumpWritable.html#a712fac2ada227f53c55eb0c4d042f239">WillWriteAtOffset</a> (<a class="el" href="classcrashpad_1_1internal_1_1MinidumpWritable.html#a009f007265d64a5fb416848480a00ae9">Phase</a> phase, <a class="el" href="namespacecrashpad.html#a1e53a1957d9edcba8b406ea632b6daf2">FileOffset</a> *offset, std::vector&lt; <a class="el" href="classcrashpad_1_1internal_1_1MinidumpWritable.html">MinidumpWritable</a> * &gt; *write_sequence)</td></tr>
<tr class="memdesc:a712fac2ada227f53c55eb0c4d042f239 inherit pro_methods_classcrashpad_1_1internal_1_1MinidumpWritable"><td class="mdescLeft">&#160;</td><td class="mdescRight">Prepares the object to be written at a known file offset, transitioning it from <a class="el" href="classcrashpad_1_1internal_1_1MinidumpWritable.html#ac14e05f291f5fa713b5ec82a208fa7c7af98547144e0e8d4f878f725ef5c0d611" title="The object is “frozen”.">kStateFrozen</a> to <a class="el" href="classcrashpad_1_1internal_1_1MinidumpWritable.html#ac14e05f291f5fa713b5ec82a208fa7c7a87483823ca30a8257b2a5fbd21805bcd" title="The object is writable.">kStateWritable</a>. <a href="classcrashpad_1_1internal_1_1MinidumpWritable.html#a712fac2ada227f53c55eb0c4d042f239">More...</a><br /></td></tr>
<tr class="separator:a712fac2ada227f53c55eb0c4d042f239 inherit pro_methods_classcrashpad_1_1internal_1_1MinidumpWritable"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab82b1e92ae0eced8b8e2efe957411773 inherit pro_methods_classcrashpad_1_1internal_1_1MinidumpWritable"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1internal_1_1MinidumpWritable.html#ab82b1e92ae0eced8b8e2efe957411773">WritePaddingAndObject</a> (<a class="el" href="classcrashpad_1_1FileWriterInterface.html">FileWriterInterface</a> *file_writer)</td></tr>
<tr class="memdesc:ab82b1e92ae0eced8b8e2efe957411773 inherit pro_methods_classcrashpad_1_1internal_1_1MinidumpWritable"><td class="mdescLeft">&#160;</td><td class="mdescRight">Writes the object, transitioning it from <a class="el" href="classcrashpad_1_1internal_1_1MinidumpWritable.html#ac14e05f291f5fa713b5ec82a208fa7c7a87483823ca30a8257b2a5fbd21805bcd" title="The object is writable.">kStateWritable</a> to <a class="el" href="classcrashpad_1_1internal_1_1MinidumpWritable.html#ac14e05f291f5fa713b5ec82a208fa7c7af0d794ed29c320fcf35c71f40cc6a510" title="The object has been written to a minidump file.">kStateWritten</a>. <a href="classcrashpad_1_1internal_1_1MinidumpWritable.html#ab82b1e92ae0eced8b8e2efe957411773">More...</a><br /></td></tr>
<tr class="separator:ab82b1e92ae0eced8b8e2efe957411773 inherit pro_methods_classcrashpad_1_1internal_1_1MinidumpWritable"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
Additional Inherited Members</h2></td></tr>
<tr class="inherit_header pro_types_classcrashpad_1_1internal_1_1MinidumpWritable"><td colspan="2" onclick="javascript:toggleInherit('pro_types_classcrashpad_1_1internal_1_1MinidumpWritable')"><img src="closed.png" alt="-"/>&#160;Protected Types inherited from <a class="el" href="classcrashpad_1_1internal_1_1MinidumpWritable.html">crashpad::internal::MinidumpWritable</a></td></tr>
<tr class="memitem:ac14e05f291f5fa713b5ec82a208fa7c7 inherit pro_types_classcrashpad_1_1internal_1_1MinidumpWritable"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1internal_1_1MinidumpWritable.html#ac14e05f291f5fa713b5ec82a208fa7c7">State</a> </td></tr>
<tr class="memdesc:ac14e05f291f5fa713b5ec82a208fa7c7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Identifies the state of an object. <a href="classcrashpad_1_1internal_1_1MinidumpWritable.html#ac14e05f291f5fa713b5ec82a208fa7c7">More...</a><br /></td></tr>
<tr class="separator:ac14e05f291f5fa713b5ec82a208fa7c7 inherit pro_types_classcrashpad_1_1internal_1_1MinidumpWritable"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a009f007265d64a5fb416848480a00ae9 inherit pro_types_classcrashpad_1_1internal_1_1MinidumpWritable"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1internal_1_1MinidumpWritable.html#a009f007265d64a5fb416848480a00ae9">Phase</a> </td></tr>
<tr class="memdesc:a009f007265d64a5fb416848480a00ae9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Identifies the phase during which an object will be written to a minidump file. <a href="classcrashpad_1_1internal_1_1MinidumpWritable.html#a009f007265d64a5fb416848480a00ae9">More...</a><br /></td></tr>
<tr class="separator:a009f007265d64a5fb416848480a00ae9 inherit pro_types_classcrashpad_1_1internal_1_1MinidumpWritable"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pro_static_attribs_classcrashpad_1_1internal_1_1MinidumpWritable"><td colspan="2" onclick="javascript:toggleInherit('pro_static_attribs_classcrashpad_1_1internal_1_1MinidumpWritable')"><img src="closed.png" alt="-"/>&#160;Static Protected Attributes inherited from <a class="el" href="classcrashpad_1_1internal_1_1MinidumpWritable.html">crashpad::internal::MinidumpWritable</a></td></tr>
<tr class="memitem:ac2b31049c4fedaabb24857d82531d6d6 inherit pro_static_attribs_classcrashpad_1_1internal_1_1MinidumpWritable"><td class="memItemLeft" align="right" valign="top"><a id="ac2b31049c4fedaabb24857d82531d6d6"></a>
static constexpr size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1internal_1_1MinidumpWritable.html#ac2b31049c4fedaabb24857d82531d6d6">kInvalidSize</a> = std::numeric_limits&lt;size_t&gt;::max()</td></tr>
<tr class="memdesc:ac2b31049c4fedaabb24857d82531d6d6 inherit pro_static_attribs_classcrashpad_1_1internal_1_1MinidumpWritable"><td class="mdescLeft">&#160;</td><td class="mdescRight">A size value used to signal failure by methods that return <code>size_t</code>. <br /></td></tr>
<tr class="separator:ac2b31049c4fedaabb24857d82531d6d6 inherit pro_static_attribs_classcrashpad_1_1internal_1_1MinidumpWritable"><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>The root-level object in a minidump file. </p>
<p>This object writes a <a class="el" href="structMINIDUMP__HEADER.html" title="The top-level structure identifying a minidump file.">MINIDUMP_HEADER</a> and list of <a class="el" href="structMINIDUMP__DIRECTORY.html" title="A pointer to a stream within a minidump file.">MINIDUMP_DIRECTORY</a> entries to a minidump file. </p>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a id="a5901df68cecde91b8c5c4c3b7cad5a50"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5901df68cecde91b8c5c4c3b7cad5a50">&#9670;&nbsp;</a></span>AddStream()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool crashpad::MinidumpFileWriter::AddStream </td>
<td>(</td>
<td class="paramtype">std::unique_ptr&lt; <a class="el" href="classcrashpad_1_1internal_1_1MinidumpStreamWriter.html">internal::MinidumpStreamWriter</a> &gt;&#160;</td>
<td class="paramname"><em>stream</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Adds a stream to the minidump file and arranges for a <a class="el" href="structMINIDUMP__DIRECTORY.html" title="A pointer to a stream within a minidump file.">MINIDUMP_DIRECTORY</a> entry to point to it. </p>
<p>This object takes ownership of <em>stream</em> and becomes its parent in the overall tree of <a class="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>
<p>At most one object of each stream type (as obtained from <a class="el" href="classcrashpad_1_1internal_1_1MinidumpStreamWriter.html#aa995c5f93ecfdeb13dbfc4b7fb107632" title="Returns an object’s stream type.">internal::MinidumpStreamWriter::StreamType()</a>) may be added to a <a class="el" href="classcrashpad_1_1MinidumpFileWriter.html" title="The root-level object in a minidump file.">MinidumpFileWriter</a> object. If an attempt is made to add a stream whose type matches an existing stream’s type, this method discards the new stream.</p>
<dl class="section note"><dt>Note</dt><dd>Valid in <a class="el" href="classcrashpad_1_1internal_1_1MinidumpWritable.html#ac14e05f291f5fa713b5ec82a208fa7c7a18337604dcbdbdb23ed51810f0587665" title="The object’s properties can be modified.">kStateMutable</a>.</dd></dl>
<dl class="section return"><dt>Returns</dt><dd><code>true</code> on success. <code>false</code> on failure, as occurs when an attempt is made to add a stream whose type matches an existing stream’s type, with a message logged. </dd></dl>
</div>
</div>
<a id="adced3695b26f78e901270b89582a224a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#adced3695b26f78e901270b89582a224a">&#9670;&nbsp;</a></span>AddUserExtensionStream()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool crashpad::MinidumpFileWriter::AddUserExtensionStream </td>
<td>(</td>
<td class="paramtype">std::unique_ptr&lt; <a class="el" href="classcrashpad_1_1MinidumpUserExtensionStreamDataSource.html">MinidumpUserExtensionStreamDataSource</a> &gt;&#160;</td>
<td class="paramname"><em>user_extension_stream_data</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Adds a user extension stream to the minidump file and arranges for a <a class="el" href="structMINIDUMP__DIRECTORY.html" title="A pointer to a stream within a minidump file.">MINIDUMP_DIRECTORY</a> entry to point to it. </p>
<p>This object takes ownership of <em>user_extension_stream_data</em>.</p>
<p>At most one object of each stream type (as obtained from <a class="el" href="classcrashpad_1_1internal_1_1MinidumpStreamWriter.html#aa995c5f93ecfdeb13dbfc4b7fb107632" title="Returns an object’s stream type.">internal::MinidumpStreamWriter::StreamType()</a>) may be added to a <a class="el" href="classcrashpad_1_1MinidumpFileWriter.html" title="The root-level object in a minidump file.">MinidumpFileWriter</a> object. If an attempt is made to add a stream whose type matches an existing stream’s type, this method discards the new stream.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">user_extension_stream_data</td><td>The stream data to add to the minidump file. Note that the buffer this object points to must be valid through <a class="el" href="classcrashpad_1_1MinidumpFileWriter.html#ad8eeea6397f565a17455c091b0a3f6a6" title="Writes an object and all of its children to a minidump file.">WriteEverything()</a>.</td></tr>
</table>
</dd>
</dl>
<dl class="section note"><dt>Note</dt><dd>Valid in <a class="el" href="classcrashpad_1_1internal_1_1MinidumpWritable.html#ac14e05f291f5fa713b5ec82a208fa7c7a18337604dcbdbdb23ed51810f0587665" title="The object’s properties can be modified.">kStateMutable</a>.</dd></dl>
<dl class="section return"><dt>Returns</dt><dd><code>true</code> on success. <code>false</code> on failure, as occurs when an attempt is made to add a stream whose type matches an existing stream’s type, with a message logged. </dd></dl>
</div>
</div>
<a id="a4a668939e980cb2b58931b3b7d2c155f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4a668939e980cb2b58931b3b7d2c155f">&#9670;&nbsp;</a></span>Children()</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; <a class="el" href="classcrashpad_1_1internal_1_1MinidumpWritable.html">internal::MinidumpWritable</a> * &gt; crashpad::MinidumpFileWriter::Children </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the object’s children. </p>
<dl class="section note"><dt>Note</dt><dd>Valid in <a class="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 <a class="el" href="classcrashpad_1_1internal_1_1MinidumpWritable.html#a32460b7fe2154fbabc3c58bf10dc7861">crashpad::internal::MinidumpWritable</a>.</p>
</div>
</div>
<a id="a5592aa929693a02f7cb81797d07b1dd8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5592aa929693a02f7cb81797d07b1dd8">&#9670;&nbsp;</a></span>Freeze()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool crashpad::MinidumpFileWriter::Freeze </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Transitions the object from <a class="el" href="classcrashpad_1_1internal_1_1MinidumpWritable.html#ac14e05f291f5fa713b5ec82a208fa7c7a18337604dcbdbdb23ed51810f0587665" title="The object’s properties can be modified.">kStateMutable</a> to <a class="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 <a class="el" href="classcrashpad_1_1MinidumpFileWriter.html#a5592aa929693a02f7cb81797d07b1dd8" 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 <a class="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 <a class="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 <a class="el" href="classcrashpad_1_1MinidumpFileWriter.html#a5592aa929693a02f7cb81797d07b1dd8" 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>
<dl class="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 <a class="el" href="classcrashpad_1_1internal_1_1MinidumpWritable.html#a773db80946a99c6a3cc29c7d4dd77bd6">crashpad::internal::MinidumpWritable</a>.</p>
</div>
</div>
<a id="ab75b7c7565f0f85054578d6c39064d5a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab75b7c7565f0f85054578d6c39064d5a">&#9670;&nbsp;</a></span>InitializeFromSnapshot()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void crashpad::MinidumpFileWriter::InitializeFromSnapshot </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classcrashpad_1_1ProcessSnapshot.html">ProcessSnapshot</a> *&#160;</td>
<td class="paramname"><em>process_snapshot</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Initializes the <a class="el" href="classcrashpad_1_1MinidumpFileWriter.html" title="The root-level object in a minidump file.">MinidumpFileWriter</a> and populates it with appropriate child streams based on <em>process_snapshot</em>. </p>
<p>This method will add additional streams to the minidump file as children of the <a class="el" href="classcrashpad_1_1MinidumpFileWriter.html" title="The root-level object in a minidump file.">MinidumpFileWriter</a> object and as pointees of the top-level <a class="el" href="structMINIDUMP__DIRECTORY.html" title="A pointer to a stream within a minidump file.">MINIDUMP_DIRECTORY</a>. To do so, it will obtain other snapshot information from <em>process_snapshot</em>, such as a <a class="el" href="classcrashpad_1_1SystemSnapshot.html" title="An abstract interface to a snapshot representing the state of a system, comprising an operating syste...">SystemSnapshot</a>, lists of <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> and <a class="el" href="classcrashpad_1_1ModuleSnapshot.html" title="An abstract interface to a snapshot representing a code module (binary image) loaded into a snapshot ...">ModuleSnapshot</a> objects, and, if available, 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>.</p>
<p>The streams are added in the order that they are expected to be most useful to minidump readers, to improve data locality and minimize seeking. The streams are added in this order:</p><ul>
<li>kMinidumpStreamTypeSystemInfo</li>
<li>kMinidumpStreamTypeMiscInfo</li>
<li>kMinidumpStreamTypeThreadList</li>
<li>kMinidumpStreamTypeException (if present)</li>
<li>kMinidumpStreamTypeModuleList</li>
<li>kMinidumpStreamTypeUnloadedModuleList (if present)</li>
<li>kMinidumpStreamTypeCrashpadInfo (if present)</li>
<li>kMinidumpStreamTypeMemoryInfoList (if present)</li>
<li>kMinidumpStreamTypeHandleData (if present)</li>
<li>User streams (if present)</li>
<li>kMinidumpStreamTypeMemoryList</li>
</ul>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">process_snapshot</td><td>The process snapshot to use as source data.</td></tr>
</table>
</dd>
</dl>
<dl class="section note"><dt>Note</dt><dd>Valid in <a class="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>
</div>
</div>
<a id="adceffe1f226fce650a0cbdf1a61a29e6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#adceffe1f226fce650a0cbdf1a61a29e6">&#9670;&nbsp;</a></span>SetTimestamp()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void crashpad::MinidumpFileWriter::SetTimestamp </td>
<td>(</td>
<td class="paramtype">time_t&#160;</td>
<td class="paramname"><em>timestamp</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Sets MINIDUMP_HEADER::Timestamp. </p>
<dl class="section note"><dt>Note</dt><dd>Valid in <a class="el" href="classcrashpad_1_1internal_1_1MinidumpWritable.html#ac14e05f291f5fa713b5ec82a208fa7c7a18337604dcbdbdb23ed51810f0587665" title="The object’s properties can be modified.">kStateMutable</a>. </dd></dl>
</div>
</div>
<a id="ad0a4247475f00ed32163757f3bc8071b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad0a4247475f00ed32163757f3bc8071b">&#9670;&nbsp;</a></span>SizeOfObject()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">size_t crashpad::MinidumpFileWriter::SizeOfObject </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<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>
<dl class="section note"><dt>Note</dt><dd>Valid in <a class="el" href="classcrashpad_1_1internal_1_1MinidumpWritable.html#ac14e05f291f5fa713b5ec82a208fa7c7af98547144e0e8d4f878f725ef5c0d611" title="The object is “frozen”.">kStateFrozen</a> or any subsequent state. </dd></dl>
<p>Implements <a class="el" href="classcrashpad_1_1internal_1_1MinidumpWritable.html#a1483275a3acbdfcecffb7f3c27cd2feb">crashpad::internal::MinidumpWritable</a>.</p>
</div>
</div>
<a id="ae9b7cef2c519dfdd5a7a06ecdd9766cc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae9b7cef2c519dfdd5a7a06ecdd9766cc">&#9670;&nbsp;</a></span>WillWriteAtOffsetImpl()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool crashpad::MinidumpFileWriter::WillWriteAtOffsetImpl </td>
<td>(</td>
<td class="paramtype"><a class="el" href="namespacecrashpad.html#a1e53a1957d9edcba8b406ea632b6daf2">FileOffset</a>&#160;</td>
<td class="paramname"><em>offset</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Called once an object’s writable file offset is determined, as it transitions into <a class="el" href="classcrashpad_1_1internal_1_1MinidumpWritable.html#ac14e05f291f5fa713b5ec82a208fa7c7a87483823ca30a8257b2a5fbd21805bcd" title="The object is writable.">kStateWritable</a>. </p>
<p>Subclasses can override this method if they need to provide additional processing once their writable file offset is known. Typically, this will be done by subclasses that handle certain RVAs themselves instead of using the <a class="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> interface.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">offset</td><td>The file offset at which the object will be written. The value passed to this method will already have been adjusted to meet alignment requirements.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><code>true</code> on success. <code>false</code> on error, indicating that the minidump file should not be written.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>Valid in <a class="el" href="classcrashpad_1_1internal_1_1MinidumpWritable.html#ac14e05f291f5fa713b5ec82a208fa7c7af98547144e0e8d4f878f725ef5c0d611" title="The object is “frozen”.">kStateFrozen</a>. The object will transition to <a class="el" href="classcrashpad_1_1internal_1_1MinidumpWritable.html#ac14e05f291f5fa713b5ec82a208fa7c7a87483823ca30a8257b2a5fbd21805bcd" title="The object is writable.">kStateWritable</a> after this method returns. </dd></dl>
<p>Reimplemented from <a class="el" href="classcrashpad_1_1internal_1_1MinidumpWritable.html#a2416cb821816b769d95b92e486713ebf">crashpad::internal::MinidumpWritable</a>.</p>
</div>
</div>
<a id="ad8eeea6397f565a17455c091b0a3f6a6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad8eeea6397f565a17455c091b0a3f6a6">&#9670;&nbsp;</a></span>WriteEverything()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool crashpad::MinidumpFileWriter::WriteEverything </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classcrashpad_1_1FileWriterInterface.html">FileWriterInterface</a> *&#160;</td>
<td class="paramname"><em>file_writer</em></td><td>)</td>
<td></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>Writes an object and all of its children to a minidump file. </p>
<p>Use this on the root object of a tree of MinidumpWritable objects, typically on a <a class="el" href="classcrashpad_1_1MinidumpFileWriter.html" title="The root-level object in a minidump file.">MinidumpFileWriter</a> object.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">file_writer</td><td>The file writer to receive the minidump file’s content.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><code>true</code> on success. <code>false</code> on failure, with an appropriate message logged.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>Valid in <a class="el" href="classcrashpad_1_1internal_1_1MinidumpWritable.html#ac14e05f291f5fa713b5ec82a208fa7c7a18337604dcbdbdb23ed51810f0587665" title="The object’s properties can be modified.">kStateMutable</a>, and transitions the object and the entire tree beneath it through all states to <a class="el" href="classcrashpad_1_1internal_1_1MinidumpWritable.html#ac14e05f291f5fa713b5ec82a208fa7c7af0d794ed29c320fcf35c71f40cc6a510" title="The object has been written to a minidump file.">kStateWritten</a>.</dd>
<dd>
This method should rarely be overridden.</dd></dl>
<p>This method does not initially write the final value for <a class="el" href="structMINIDUMP__HEADER.html#ae1c77644aa56ab70fd6f50c343eafda8" title="The minidump file format magic number, MINIDUMP_SIGNATURE.">MINIDUMP_HEADER::Signature</a>. After all child objects have been written, it rewinds to the beginning of the file and writes the correct value for this field. This prevents incompletely-written minidump files from being mistaken for valid ones. </p>
<p>Reimplemented from <a class="el" href="classcrashpad_1_1internal_1_1MinidumpWritable.html#a24507e918299cb566c7f15207de83a7f">crashpad::internal::MinidumpWritable</a>.</p>
</div>
</div>
<a id="a3240f18789b2d2e1e6947d24ba301af1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3240f18789b2d2e1e6947d24ba301af1">&#9670;&nbsp;</a></span>WriteMinidump()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool crashpad::MinidumpFileWriter::WriteMinidump </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classcrashpad_1_1FileWriterInterface.html">FileWriterInterface</a> *&#160;</td>
<td class="paramname"><em>file_writer</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>allow_seek</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Writes this object to a minidump file. </p>
<p>Same as <em>WriteEverything</em>, but give the option to disable the seek. It is typically used to write to stream backed <em><a class="el" href="classcrashpad_1_1FileWriterInterface.html" title="An interface to write to files and other file-like objects with semantics matching the underlying pla...">FileWriterInterface</a></em> which doesn't support seek.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">file_writer</td><td>The file writer to receive the minidump file’s content.</td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">allow_seek</td><td>Whether seek is allowed.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><code>true</code> on success. <code>false</code> on failure, with an appropriate message logged. </dd></dl>
</div>
</div>
<a id="abad1dd1348b1224b051014498070dd9e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abad1dd1348b1224b051014498070dd9e">&#9670;&nbsp;</a></span>WriteObject()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool crashpad::MinidumpFileWriter::WriteObject </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classcrashpad_1_1FileWriterInterface.html">FileWriterInterface</a> *&#160;</td>
<td class="paramname"><em>file_writer</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Writes the object’s content. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">file_writer</td><td>The file writer to receive the object’s content.</td></tr>
</table>
</dd>
</dl>
<dl class="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>
<dl class="section note"><dt>Note</dt><dd>Valid in <a class="el" href="classcrashpad_1_1internal_1_1MinidumpWritable.html#ac14e05f291f5fa713b5ec82a208fa7c7a87483823ca30a8257b2a5fbd21805bcd" title="The object is writable.">kStateWritable</a>. The object will transition to <a class="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>
<p>Implements <a class="el" href="classcrashpad_1_1internal_1_1MinidumpWritable.html#a2d3472b11ec3c12184f5d8f946fbb4a1">crashpad::internal::MinidumpWritable</a>.</p>
</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li>minidump/minidump_file_writer.h</li>
<li>minidump/minidump_file_writer.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>