<!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: Class Members - Variables</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>
</div><!-- top -->
<!-- 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 class="contents">
&#160;

<h3><a id="index_v"></a>- v -</h3><ul>
<li>value
: <a class="el" href="structcrashpad_1_1AnnotationSnapshot.html#a223d3ad82716a37ba2ac77f9eb35ee15">crashpad::AnnotationSnapshot</a>
, <a class="el" href="structcrashpad_1_1MachOImageSymbolTableReader_1_1SymbolInformation.html#a91405f79a8b62e3fb3de4e8c66fee952">crashpad::MachOImageSymbolTableReader::SymbolInformation</a>
, <a class="el" href="structcrashpad_1_1MinidumpAnnotation.html#a73d793b2fe894960aaa5ab166efddf4d">crashpad::MinidumpAnnotation</a>
, <a class="el" href="structcrashpad_1_1MinidumpSimpleStringDictionaryEntry.html#a90c3c20c4ae9af6db225682427c1f314">crashpad::MinidumpSimpleStringDictionaryEntry</a>
, <a class="el" href="structcrashpad_1_1TSimpleStringDictionary_1_1Entry.html#af7fa75c478ce69d42354a046327fe658">crashpad::TSimpleStringDictionary&lt; KeySize, ValueSize, NumEntries &gt;::Entry</a>
</li>
<li>value_size
: <a class="el" href="classcrashpad_1_1TSimpleStringDictionary.html#a1176a981ba33d55f9b0a5f22e7fe4171">crashpad::TSimpleStringDictionary&lt; KeySize, ValueSize, NumEntries &gt;</a>
</li>
<li>VendorId
: <a class="el" href="unionCPU__INFORMATION.html#af239b99d9ef6b86fb04ffeabd85831c6">CPU_INFORMATION</a>
</li>
<li>version
: <a class="el" href="structcrashpad_1_1ClientToServerMessage.html#a7ef691b82fb8ab3edcd04ddcde6173d7">crashpad::ClientToServerMessage</a>
, <a class="el" href="structcrashpad_1_1MinidumpCrashpadInfo.html#a481042efad46164dc43d9c824df9e6cf">crashpad::MinidumpCrashpadInfo</a>
, <a class="el" href="structcrashpad_1_1MinidumpModuleCrashpadInfo.html#ace07d8872cdaa53ca20a04513deb56c3">crashpad::MinidumpModuleCrashpadInfo</a>
, <a class="el" href="structcrashpad_1_1PtraceBroker_1_1Request.html#a505a324ad681ab0fb627183df677d2f6">crashpad::PtraceBroker::Request</a>
, <a class="el" href="structcrashpad_1_1RegistrationRequest.html#afa8008cc71aec2d142493cd0c7f5a98d">crashpad::RegistrationRequest</a>
</li>
<li>Version
: <a class="el" href="structMINIDUMP__HEADER.html#a7ea8d51f5ca990eec9eb0b3643c6b406">MINIDUMP_HEADER</a>
</li>
<li>VersionInfo
: <a class="el" href="structMINIDUMP__MODULE.html#ac2babe58e6418124599ea2821f30bb84">MINIDUMP_MODULE</a>
</li>
<li>VersionInformation
: <a class="el" href="unionCPU__INFORMATION.html#a6b072a6cae2e065111ef20acf21e355a">CPU_INFORMATION</a>
</li>
<li>vfp
: <a class="el" href="structcrashpad_1_1MinidumpContextARM.html#a13ba3738880efb5af2b3921676a92c89">crashpad::MinidumpContextARM</a>
</li>
<li>visibility
: <a class="el" href="structcrashpad_1_1ElfSymbolTableReader_1_1SymbolInformation.html#a2925aa133524f1383fef3ae9a9ecfb7b">crashpad::ElfSymbolTableReader::SymbolInformation</a>
</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>
