blob: 196aaa84e5b939dcbba4b9924f2d1affeae21f77 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head>
<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"/>
<meta name="keywords" content="LLDB,C++,doxygen,API,documentation"/>
<meta name="description" content="C++ source code API documentation for LLDB."/>
<title>LLVM: SBSection.h Source File</title>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head><body>
<p class="title">LLDB API Documentation</p>
<!-- Generated by Doxygen 1.8.6 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main Page</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File List</span></a></li>
</ul>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_6b47ac86da6aee9115280ffa56155f66.html">llvm</a></li><li class="navelem"><a class="el" href="dir_b8cffa74dcb91bca0da221349fa85523.html">tools</a></li><li class="navelem"><a class="el" href="dir_bdcf59bf838c999fcfc3dde87d35c9f0.html">lldb</a></li><li class="navelem"><a class="el" href="dir_42333c9da4438c4e48b6683e9ba44a59.html">include</a></li><li class="navelem"><a class="el" href="dir_30e71e610673c7b74c5ccda0fc334ee9.html">lldb</a></li><li class="navelem"><a class="el" href="dir_65cab015c1f428073772d528e6a1b53d.html">API</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">SBSection.h</div> </div>
</div><!--header-->
<div class="contents">
<a href="SBSection_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">//===-- SBSection.h ---------------------------------------------*- C++ -*-===//</span></div>
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment">//</span></div>
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">// The LLVM Compiler Infrastructure</span></div>
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">//</span></div>
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">// This file is distributed under the University of Illinois Open Source</span></div>
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment">// License. See LICENSE.TXT for details.</span></div>
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment">//</span></div>
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> </div>
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="preprocessor">#ifndef LLDB_SBSection_h_</span></div>
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="preprocessor"></span><span class="preprocessor">#define LLDB_SBSection_h_</span></div>
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="preprocessor"></span></div>
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#include "<a class="code" href="SBData_8h.html">lldb/API/SBData.h</a>"</span></div>
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#include "<a class="code" href="SBDefines_8h.html">lldb/API/SBDefines.h</a>"</span></div>
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> </div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="keyword">namespace </span>lldb {</div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> </div>
<div class="line"><a name="l00018"></a><span class="lineno"><a class="line" href="classlldb_1_1SBSection.html"> 18</a></span> <span class="keyword">class </span>LLDB_API <a class="code" href="classlldb_1_1SBSection.html">SBSection</a> {</div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="keyword">public</span>:</div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>  <a class="code" href="namespacelldb.html#ab8e583eec1ea23e7b75ea0678bcadb2a">SBSection</a>();</div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> </div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>  <a class="code" href="namespacelldb.html#ab8e583eec1ea23e7b75ea0678bcadb2a">SBSection</a>(<span class="keyword">const</span> <a class="code" href="classlldb_1_1SBSection.html">lldb::SBSection</a> &rhs);</div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> </div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>  ~<a class="code" href="classlldb_1_1SBSection.html">SBSection</a>();</div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> </div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>  <span class="keyword">const</span> <a class="code" href="classlldb_1_1SBSection.html">lldb::SBSection</a> &operator=(<span class="keyword">const</span> <a class="code" href="classlldb_1_1SBSection.html">lldb::SBSection</a> &rhs);</div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> </div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>  <span class="keywordtype">bool</span> IsValid() <span class="keyword">const</span>;</div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> </div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *GetName();</div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> </div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>  <a class="code" href="classlldb_1_1SBSection.html">lldb::SBSection</a> GetParent();</div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> </div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>  <a class="code" href="classlldb_1_1SBSection.html">lldb::SBSection</a> FindSubSection(<span class="keyword">const</span> <span class="keywordtype">char</span> *sect_name);</div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> </div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  <span class="keywordtype">size_t</span> GetNumSubSections();</div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> </div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  <a class="code" href="classlldb_1_1SBSection.html">lldb::SBSection</a> GetSubSectionAtIndex(<span class="keywordtype">size_t</span> idx);</div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> </div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  lldb::addr_t GetFileAddress();</div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> </div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  lldb::addr_t GetLoadAddress(<a class="code" href="classlldb_1_1SBTarget.html">lldb::SBTarget</a> &target);</div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> </div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  lldb::addr_t GetByteSize();</div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> </div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  uint64_t GetFileOffset();</div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> </div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  uint64_t GetFileByteSize();</div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> </div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  <a class="code" href="classlldb_1_1SBData.html">lldb::SBData</a> GetSectionData();</div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> </div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  <a class="code" href="classlldb_1_1SBData.html">lldb::SBData</a> GetSectionData(uint64_t offset, uint64_t size);</div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> </div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  SectionType GetSectionType();</div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> </div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  <span class="comment">//------------------------------------------------------------------</span><span class="comment"></span></div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="comment"> /// Gets the permissions (RWX) of the section of the object file</span></div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="comment"> ///</span></div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="comment"> /// Returns a mask of bits of enum lldb::Permissions for this section.</span></div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> <span class="comment"> /// Sections for which permissions are not defined, 0 is returned for</span></div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> <span class="comment"> /// them. The binary representation of this value corresponds to [XRW]</span></div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> <span class="comment"> /// i.e. for a section having read and execute permissions, the value</span></div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> <span class="comment"> /// returned is 6</span></div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> <span class="comment"> ///</span></div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> <span class="comment"> /// @return</span></div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> <span class="comment"> /// Returns an unsigned value for Permissions for the section.</span></div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> <span class="comment"></span> <span class="comment">//------------------------------------------------------------------</span></div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  uint32_t</div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  GetPermissions() <span class="keyword">const</span>;</div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> </div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  <span class="comment">//------------------------------------------------------------------</span><span class="comment"></span></div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> <span class="comment"> /// Return the size of a target's byte represented by this section</span></div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> <span class="comment"> /// in numbers of host bytes. Note that certain architectures have</span></div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> <span class="comment"> /// varying minimum addressable unit (i.e. byte) size for their</span></div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> <span class="comment"> /// CODE or DATA buses.</span></div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> <span class="comment"> ///</span></div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> <span class="comment"> /// @return</span></div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> <span class="comment"> /// The number of host (8-bit) bytes needed to hold a target byte</span></div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> <span class="comment"></span> <span class="comment">//------------------------------------------------------------------</span></div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  uint32_t GetTargetByteSize();</div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> </div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  <span class="keywordtype">bool</span> operator==(<span class="keyword">const</span> <a class="code" href="classlldb_1_1SBSection.html">lldb::SBSection</a> &rhs);</div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> </div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  <span class="keywordtype">bool</span> operator!=(<span class="keyword">const</span> <a class="code" href="classlldb_1_1SBSection.html">lldb::SBSection</a> &rhs);</div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> </div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  <span class="keywordtype">bool</span> GetDescription(<a class="code" href="classlldb_1_1SBStream.html">lldb::SBStream</a> &description);</div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> </div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> <span class="keyword">private</span>:</div>
<div class="line"><a name="l00089"></a><span class="lineno"><a class="line" href="classlldb_1_1SBSection.html#a6e49cb4c7b4df1a9e1231d58a4952607"> 89</a></span>  <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classlldb_1_1SBAddress.html">SBAddress</a>;</div>
<div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="classlldb_1_1SBSection.html#a5a50b764fceeae5ed6ecf04b9d1eba5c"> 90</a></span>  <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classlldb_1_1SBModule.html">SBModule</a>;</div>
<div class="line"><a name="l00091"></a><span class="lineno"><a class="line" href="classlldb_1_1SBSection.html#a593230acf95f9720217b7fb17681efca"> 91</a></span>  <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classlldb_1_1SBTarget.html">SBTarget</a>;</div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> </div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  <a class="code" href="namespacelldb.html#ab8e583eec1ea23e7b75ea0678bcadb2a">SBSection</a>(<span class="keyword">const</span> lldb::SectionSP &section_sp);</div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> </div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  lldb::SectionSP GetSP() <span class="keyword">const</span>;</div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> </div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  <span class="keywordtype">void</span> SetSP(<span class="keyword">const</span> lldb::SectionSP &section_sp);</div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> </div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  lldb::SectionWP m_opaque_wp;</div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> };</div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> </div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> } <span class="comment">// namespace lldb</span></div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> </div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> <span class="preprocessor">#endif // LLDB_SBSection_h_</span></div>
<div class="ttc" id="classlldb_1_1SBData_html"><div class="ttname"><a href="classlldb_1_1SBData.html">lldb::SBData</a></div><div class="ttdef"><b>Definition:</b> <a href="SBData_8h_source.html#l00017">SBData.h:17</a></div></div>
<div class="ttc" id="SBDefines_8h_html"><div class="ttname"><a href="SBDefines_8h.html">SBDefines.h</a></div></div>
<div class="ttc" id="SBData_8h_html"><div class="ttname"><a href="SBData_8h.html">SBData.h</a></div></div>
<div class="ttc" id="namespacelldb_html_ab8e583eec1ea23e7b75ea0678bcadb2a"><div class="ttname"><a href="namespacelldb.html#ab8e583eec1ea23e7b75ea0678bcadb2a">lldb::SBSection</a></div><div class="ttdeci">class LLDB_API SBSection</div><div class="ttdef"><b>Definition:</b> <a href="SBDefines_8h_source.html#l00070">SBDefines.h:70</a></div></div>
<div class="ttc" id="classlldb_1_1SBAddress_html"><div class="ttname"><a href="classlldb_1_1SBAddress.html">lldb::SBAddress</a></div><div class="ttdef"><b>Definition:</b> <a href="SBAddress_8h_source.html#l00018">SBAddress.h:18</a></div></div>
<div class="ttc" id="classlldb_1_1SBModule_html"><div class="ttname"><a href="classlldb_1_1SBModule.html">lldb::SBModule</a></div><div class="ttdef"><b>Definition:</b> <a href="SBModule_8h_source.html#l00021">SBModule.h:21</a></div></div>
<div class="ttc" id="classlldb_1_1SBSection_html"><div class="ttname"><a href="classlldb_1_1SBSection.html">lldb::SBSection</a></div><div class="ttdef"><b>Definition:</b> <a href="SBSection_8h_source.html#l00018">SBSection.h:18</a></div></div>
<div class="ttc" id="classlldb_1_1SBStream_html"><div class="ttname"><a href="classlldb_1_1SBStream.html">lldb::SBStream</a></div><div class="ttdef"><b>Definition:</b> <a href="SBStream_8h_source.html#l00019">SBStream.h:19</a></div></div>
<div class="ttc" id="classlldb_1_1SBTarget_html"><div class="ttname"><a href="classlldb_1_1SBTarget.html">lldb::SBTarget</a></div><div class="ttdef"><b>Definition:</b> <a href="SBTarget_8h_source.html#l00034">SBTarget.h:34</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<hr>
<p class="footer">
Generated on Fri Oct 14 2016 14:01:23 for <a href="http://lldb.llvm.org/">LLVM</a> by
<a href="http://www.doxygen.org"><img src="doxygen.png" alt="Doxygen"
align="middle" border="0"/>1.8.6</a><br>
Copyright © 2003-2013 University of Illinois at Urbana-Champaign.
All Rights Reserved.</p>
<hr>
<!--#include virtual="/attrib.incl" -->
</body>
</html>
|