LLDB  mainline
SBSection.h
Go to the documentation of this file.
1 //===-- SBSection.h ---------------------------------------------*- C++ -*-===//
2 //
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 // See https://llvm.org/LICENSE.txt for license information.
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6 //
7 //===----------------------------------------------------------------------===//
8 
9 #ifndef LLDB_API_SBSECTION_H
10 #define LLDB_API_SBSECTION_H
11 
12 #include "lldb/API/SBData.h"
13 #include "lldb/API/SBDefines.h"
14 
15 namespace lldb {
16 
18 public:
19  SBSection();
20 
21  SBSection(const lldb::SBSection &rhs);
22 
23  ~SBSection();
24 
25  const lldb::SBSection &operator=(const lldb::SBSection &rhs);
26 
27  explicit operator bool() const;
28 
29  bool IsValid() const;
30 
31  const char *GetName();
32 
33  lldb::SBSection GetParent();
34 
35  lldb::SBSection FindSubSection(const char *sect_name);
36 
37  size_t GetNumSubSections();
38 
39  lldb::SBSection GetSubSectionAtIndex(size_t idx);
40 
41  lldb::addr_t GetFileAddress();
42 
43  lldb::addr_t GetLoadAddress(lldb::SBTarget &target);
44 
45  lldb::addr_t GetByteSize();
46 
47  uint64_t GetFileOffset();
48 
49  uint64_t GetFileByteSize();
50 
51  lldb::SBData GetSectionData();
52 
53  lldb::SBData GetSectionData(uint64_t offset, uint64_t size);
54 
56 
57  /// Gets the permissions (RWX) of the section of the object file
58  ///
59  /// Returns a mask of bits of enum lldb::Permissions for this section.
60  /// Sections for which permissions are not defined, 0 is returned for
61  /// them. The binary representation of this value corresponds to [XRW]
62  /// i.e. for a section having read and execute permissions, the value
63  /// returned is 6
64  ///
65  /// \return
66  /// Returns an unsigned value for Permissions for the section.
67  uint32_t
68  GetPermissions() const;
69 
70  /// Return the size of a target's byte represented by this section
71  /// in numbers of host bytes. Note that certain architectures have
72  /// varying minimum addressable unit (i.e. byte) size for their
73  /// CODE or DATA buses.
74  ///
75  /// \return
76  /// The number of host (8-bit) bytes needed to hold a target byte
78 
79  bool operator==(const lldb::SBSection &rhs);
80 
81  bool operator!=(const lldb::SBSection &rhs);
82 
83  bool GetDescription(lldb::SBStream &description);
84 
85 private:
86  friend class SBAddress;
87  friend class SBModule;
88  friend class SBTarget;
89 
90  SBSection(const lldb::SectionSP &section_sp);
91 
92  lldb::SectionSP GetSP() const;
93 
94  void SetSP(const lldb::SectionSP &section_sp);
95 
96  lldb::SectionWP m_opaque_wp;
97 };
98 
99 } // namespace lldb
100 
101 #endif // LLDB_API_SBSECTION_H
SBDefines.h
LLDB_API
#define LLDB_API
Definition: lldb-defines.h:23
GetPermissions
static Permissions GetPermissions(const ELFSectionHeader &H)
Definition: ObjectFileELF.cpp:1654
lldb::addr_t
uint64_t addr_t
Definition: lldb-types.h:83
GetTargetByteSize
static uint32_t GetTargetByteSize(SectionType Type, const ArchSpec &arch)
Definition: ObjectFileELF.cpp:1642
lldb::SBTarget
Definition: SBTarget.h:29
SBData.h
GetName
static llvm::StringRef GetName(XcodeSDK::Type type)
Definition: XcodeSDK.cpp:21
GetSectionType
static lldb::SectionType GetSectionType(uint32_t flags, ConstString section_name)
Definition: ObjectFileMachO.cpp:1467
lldb::operator==
bool LLDB_API operator==(const SBAddress &lhs, const SBAddress &rhs)
Definition: SBAddress.cpp:63
lldb::SBSection
Definition: SBSection.h:17
lldb_private::operator!=
bool operator!=(const Address &lhs, const Address &rhs)
Definition: Address.cpp:1005
lldb::SBSection
class LLDB_API SBSection
Definition: SBDefines.h:66
lldb::SBSection::m_opaque_wp
lldb::SectionWP m_opaque_wp
Definition: SBSection.h:96
uint32_t
lldb::SectionType
SectionType
Definition: lldb-enumerations.h:646
lldb::SBModule
Definition: SBModule.h:20
lldb::SBData
Definition: SBData.h:20
lldb::SBAddress
Definition: SBAddress.h:17
lldb::SBStream
Definition: SBStream.h:18
lldb
Definition: SBAddress.h:15