1 //===-- 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 10 namespace lldb { 11 12 %feature("docstring", 13 "Represents an executable image section. 14 15 SBSection supports iteration through its subsection, represented as SBSection 16 as 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 26 produces: 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 37 See also SBModule." 38 ) SBSection; 39 40 class SBSection 41 { 42 public: 43 44 SBSection (); 45 46 SBSection (const lldb::SBSection &rhs); 47 48 ~SBSection (); 49 50 bool 51 IsValid () const; 52 53 const char * 54 GetName (); 55 56 lldb::SBSection 57 GetParent(); 58 59 lldb::SBSection 60 FindSubSection (const char *sect_name); 61 62 size_t 63 GetNumSubSections (); 64 65 lldb::SBSection 66 GetSubSectionAtIndex (size_t idx); 67 68 lldb::addr_t 69 GetFileAddress (); 70 71 lldb::addr_t 72 GetLoadAddress (lldb::SBTarget &target); 73 74 lldb::addr_t 75 GetByteSize (); 76 77 uint64_t 78 GetFileOffset (); 79 80 uint64_t 81 GetFileByteSize (); 82 83 lldb::SBData 84 GetSectionData (); 85 86 lldb::SBData 87 GetSectionData (uint64_t offset, 88 uint64_t size); 89 90 SectionType 91 GetSectionType (); 92 93 bool 94 GetDescription (lldb::SBStream &description); 95 96 bool 97 operator == (const lldb::SBSection &rhs); 98 99 bool 100 operator != (const lldb::SBSection &rhs); 101 102 %pythoncode %{ 103 def get_addr(self): 104 return SBAddress(self, 0) 105 106 __swig_getmethods__["name"] = GetName 107 if _newclass: name = property(GetName, None, doc='''A read only property that returns the name of this section as a string.''') 108 109 __swig_getmethods__["addr"] = get_addr 110 if _newclass: addr = property(get_addr, None, doc='''A read only property that returns an lldb object that represents the start address (lldb.SBAddress) for this section.''') 111 112 __swig_getmethods__["file_addr"] = GetFileAddress 113 if _newclass: file_addr = property(GetFileAddress, None, doc='''A read only property that returns an integer that represents the starting "file" address for this section, or the address of the section in the object file in which it is defined.''') 114 115 __swig_getmethods__["size"] = GetByteSize 116 if _newclass: size = property(GetByteSize, None, doc='''A read only property that returns the size in bytes of this section as an integer.''') 117 118 __swig_getmethods__["file_offset"] = GetFileOffset 119 if _newclass: file_offset = property(GetFileOffset, None, doc='''A read only property that returns the file offset in bytes of this section as an integer.''') 120 121 __swig_getmethods__["file_size"] = GetFileByteSize 122 if _newclass: file_size = property(GetFileByteSize, None, doc='''A read only property that returns the file size in bytes of this section as an integer.''') 123 124 __swig_getmethods__["data"] = GetSectionData 125 if _newclass: data = property(GetSectionData, None, doc='''A read only property that returns an lldb object that represents the bytes for this section (lldb.SBData) for this section.''') 126 127 __swig_getmethods__["type"] = GetSectionType 128 if _newclass: type = property(GetSectionType, None, doc='''A read only property that returns an lldb enumeration value (see enumerations that start with "lldb.eSectionType") that represents the type of this section (code, data, etc.).''') 129 130 %} 131 132 private: 133 134 std::unique_ptr<lldb_private::SectionImpl> m_opaque_ap; 135 }; 136 137 } // namespace lldb 138