2011-09-24 09:32:22 +08:00
|
|
|
//===-- SWIG Interface for SBSection ----------------------------*- C++ -*-===//
|
|
|
|
//
|
|
|
|
// The LLVM Compiler Infrastructure
|
|
|
|
//
|
|
|
|
// This file is distributed under the University of Illinois Open Source
|
|
|
|
// License. See LICENSE.TXT for details.
|
|
|
|
//
|
|
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
|
|
|
|
namespace lldb {
|
|
|
|
|
|
|
|
%feature("docstring",
|
2011-09-24 12:51:43 +08:00
|
|
|
"Represents an executable image section.
|
|
|
|
|
|
|
|
SBSection supports iteration through its subsection, represented as SBSection
|
2011-10-04 07:06:33 +08:00
|
|
|
as well. For example,
|
|
|
|
|
|
|
|
for sec in exe_module:
|
|
|
|
if sec.GetName() == '__TEXT':
|
|
|
|
print sec
|
|
|
|
break
|
|
|
|
print INDENT + 'Number of subsections: %d' % sec.GetNumSubSections()
|
|
|
|
for subsec in sec:
|
|
|
|
print INDENT + repr(subsec)
|
|
|
|
|
|
|
|
produces:
|
|
|
|
|
|
|
|
[0x0000000100000000-0x0000000100002000) a.out.__TEXT
|
|
|
|
Number of subsections: 6
|
|
|
|
[0x0000000100001780-0x0000000100001d5c) a.out.__TEXT.__text
|
|
|
|
[0x0000000100001d5c-0x0000000100001da4) a.out.__TEXT.__stubs
|
|
|
|
[0x0000000100001da4-0x0000000100001e2c) a.out.__TEXT.__stub_helper
|
|
|
|
[0x0000000100001e2c-0x0000000100001f10) a.out.__TEXT.__cstring
|
|
|
|
[0x0000000100001f10-0x0000000100001f68) a.out.__TEXT.__unwind_info
|
|
|
|
[0x0000000100001f68-0x0000000100001ff8) a.out.__TEXT.__eh_frame
|
|
|
|
|
|
|
|
See also SBModule."
|
2011-09-24 09:32:22 +08:00
|
|
|
) SBSection;
|
|
|
|
|
|
|
|
class SBSection
|
|
|
|
{
|
|
|
|
public:
|
|
|
|
|
|
|
|
SBSection ();
|
|
|
|
|
|
|
|
SBSection (const lldb::SBSection &rhs);
|
|
|
|
|
|
|
|
~SBSection ();
|
|
|
|
|
|
|
|
bool
|
|
|
|
IsValid () const;
|
|
|
|
|
2011-09-24 09:37:21 +08:00
|
|
|
const char *
|
|
|
|
GetName ();
|
|
|
|
|
2011-09-24 09:32:22 +08:00
|
|
|
lldb::SBSection
|
|
|
|
FindSubSection (const char *sect_name);
|
|
|
|
|
|
|
|
size_t
|
|
|
|
GetNumSubSections ();
|
|
|
|
|
|
|
|
lldb::SBSection
|
|
|
|
GetSubSectionAtIndex (size_t idx);
|
|
|
|
|
|
|
|
lldb::addr_t
|
|
|
|
GetFileAddress ();
|
|
|
|
|
|
|
|
lldb::addr_t
|
|
|
|
GetByteSize ();
|
|
|
|
|
|
|
|
uint64_t
|
|
|
|
GetFileOffset ();
|
|
|
|
|
|
|
|
uint64_t
|
|
|
|
GetFileByteSize ();
|
|
|
|
|
2011-09-24 13:04:40 +08:00
|
|
|
lldb::SBData
|
|
|
|
GetSectionData ();
|
|
|
|
|
2011-09-24 09:32:22 +08:00
|
|
|
lldb::SBData
|
|
|
|
GetSectionData (uint64_t offset,
|
|
|
|
uint64_t size);
|
|
|
|
|
|
|
|
SectionType
|
|
|
|
GetSectionType ();
|
|
|
|
|
|
|
|
bool
|
|
|
|
GetDescription (lldb::SBStream &description);
|
|
|
|
|
2012-01-29 14:07:39 +08:00
|
|
|
%pythoncode %{
|
|
|
|
__swig_getmethods__["name"] = GetName
|
|
|
|
if _newclass: x = property(GetName, None)
|
|
|
|
|
|
|
|
__swig_getmethods__["file_addr"] = GetFileAddress
|
|
|
|
if _newclass: x = property(GetFileAddress, None)
|
|
|
|
|
|
|
|
__swig_getmethods__["size"] = GetByteSize
|
|
|
|
if _newclass: x = property(GetByteSize, None)
|
|
|
|
|
|
|
|
__swig_getmethods__["file_offset"] = GetFileOffset
|
|
|
|
if _newclass: x = property(GetFileOffset, None)
|
|
|
|
|
|
|
|
__swig_getmethods__["file_size"] = GetFileByteSize
|
|
|
|
if _newclass: x = property(GetFileByteSize, None)
|
|
|
|
|
|
|
|
__swig_getmethods__["data"] = GetSectionData
|
|
|
|
if _newclass: x = property(GetSectionData, None)
|
|
|
|
|
|
|
|
__swig_getmethods__["type"] = GetSectionType
|
|
|
|
if _newclass: x = property(GetSectionType, None)
|
|
|
|
|
|
|
|
%}
|
|
|
|
|
2011-09-24 09:32:22 +08:00
|
|
|
private:
|
|
|
|
|
|
|
|
std::auto_ptr<lldb_private::SectionImpl> m_opaque_ap;
|
|
|
|
};
|
|
|
|
|
|
|
|
} // namespace lldb
|