blob: 1ee908a9fc62dfa8d5edb5627e2dd3e76319167e [file] [log] [blame]
Greg Clayton432efbc2011-09-24 01:32:22 +00001//===-- SWIG Interface for SBSection ----------------------------*- C++ -*-===//
2//
3// The LLVM Compiler Infrastructure
4//
5// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//
9
10namespace lldb {
11
12%feature("docstring",
Johnny Chendc0cbd12011-09-24 04:51:43 +000013"Represents an executable image section.
14
15SBSection supports iteration through its subsection, represented as SBSection
Johnny Chen681bb5e2011-10-03 23:06:33 +000016as well. For example,
17
18 for sec in exe_module:
19 if sec.GetName() == '__TEXT':
20 print sec
21 break
22 print INDENT + 'Number of subsections: %d' % sec.GetNumSubSections()
23 for subsec in sec:
24 print INDENT + repr(subsec)
25
26produces:
27
28[0x0000000100000000-0x0000000100002000) a.out.__TEXT
29 Number of subsections: 6
30 [0x0000000100001780-0x0000000100001d5c) a.out.__TEXT.__text
31 [0x0000000100001d5c-0x0000000100001da4) a.out.__TEXT.__stubs
32 [0x0000000100001da4-0x0000000100001e2c) a.out.__TEXT.__stub_helper
33 [0x0000000100001e2c-0x0000000100001f10) a.out.__TEXT.__cstring
34 [0x0000000100001f10-0x0000000100001f68) a.out.__TEXT.__unwind_info
35 [0x0000000100001f68-0x0000000100001ff8) a.out.__TEXT.__eh_frame
36
37See also SBModule."
Greg Clayton432efbc2011-09-24 01:32:22 +000038) SBSection;
39
40class SBSection
41{
42public:
43
44 SBSection ();
45
46 SBSection (const lldb::SBSection &rhs);
47
48 ~SBSection ();
49
50 bool
51 IsValid () const;
52
Greg Clayton980c7502011-09-24 01:37:21 +000053 const char *
54 GetName ();
55
Greg Clayton432efbc2011-09-24 01:32:22 +000056 lldb::SBSection
57 FindSubSection (const char *sect_name);
58
59 size_t
60 GetNumSubSections ();
61
62 lldb::SBSection
63 GetSubSectionAtIndex (size_t idx);
64
65 lldb::addr_t
66 GetFileAddress ();
67
68 lldb::addr_t
Greg Clayton5c5a38e2012-06-27 22:22:28 +000069 GetLoadAddress (lldb::SBTarget &target);
70
71 lldb::addr_t
Greg Clayton432efbc2011-09-24 01:32:22 +000072 GetByteSize ();
73
74 uint64_t
75 GetFileOffset ();
76
77 uint64_t
78 GetFileByteSize ();
79
80 lldb::SBData
Greg Clayton15ef51e2011-09-24 05:04:40 +000081 GetSectionData ();
82
83 lldb::SBData
Greg Clayton432efbc2011-09-24 01:32:22 +000084 GetSectionData (uint64_t offset,
85 uint64_t size);
86
87 SectionType
88 GetSectionType ();
89
90 bool
91 GetDescription (lldb::SBStream &description);
92
Greg Clayton1b925202012-01-29 06:07:39 +000093 %pythoncode %{
Greg Clayton39f54ea2012-02-04 02:58:17 +000094 def get_addr(self):
95 return SBAddress(self, 0)
96
Greg Clayton1b925202012-01-29 06:07:39 +000097 __swig_getmethods__["name"] = GetName
98 if _newclass: x = property(GetName, None)
99
Greg Clayton39f54ea2012-02-04 02:58:17 +0000100 __swig_getmethods__["addr"] = get_addr
101 if _newclass: x = property(get_addr, None)
102
Greg Clayton1b925202012-01-29 06:07:39 +0000103 __swig_getmethods__["file_addr"] = GetFileAddress
104 if _newclass: x = property(GetFileAddress, None)
105
106 __swig_getmethods__["size"] = GetByteSize
107 if _newclass: x = property(GetByteSize, None)
108
109 __swig_getmethods__["file_offset"] = GetFileOffset
110 if _newclass: x = property(GetFileOffset, None)
111
112 __swig_getmethods__["file_size"] = GetFileByteSize
113 if _newclass: x = property(GetFileByteSize, None)
114
115 __swig_getmethods__["data"] = GetSectionData
116 if _newclass: x = property(GetSectionData, None)
117
118 __swig_getmethods__["type"] = GetSectionType
119 if _newclass: x = property(GetSectionType, None)
120
121 %}
122
Greg Clayton432efbc2011-09-24 01:32:22 +0000123private:
124
125 std::auto_ptr<lldb_private::SectionImpl> m_opaque_ap;
126};
127
128} // namespace lldb