//===-- SBMemoryRegionInfo.h ------------------------------------*- C++ -*-===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// #ifndef LLDB_SBMemoryRegionInfo_h_ #define LLDB_SBMemoryRegionInfo_h_ #include "lldb/API/SBData.h" #include "lldb/API/SBDefines.h" namespace lldb { class LLDB_API SBMemoryRegionInfo { public: SBMemoryRegionInfo(); SBMemoryRegionInfo(const lldb::SBMemoryRegionInfo &rhs); ~SBMemoryRegionInfo(); const lldb::SBMemoryRegionInfo & operator=(const lldb::SBMemoryRegionInfo &rhs); void Clear(); /// Get the base address of this memory range. /// /// \return /// The base address of this memory range. lldb::addr_t GetRegionBase(); /// Get the end address of this memory range. /// /// \return /// The base address of this memory range. lldb::addr_t GetRegionEnd(); /// Check if this memory address is marked readable to the process. /// /// \return /// true if this memory address is marked readable bool IsReadable(); /// Check if this memory address is marked writable to the process. /// /// \return /// true if this memory address is marked writable bool IsWritable(); /// Check if this memory address is marked executable to the process. /// /// \return /// true if this memory address is marked executable bool IsExecutable(); /// Check if this memory address is mapped into the process address /// space. /// /// \return /// true if this memory address is in the process address space. bool IsMapped(); /// Returns the name of the memory region mapped at the given /// address. /// /// \return /// In case of memory mapped files it is the absolute path of /// the file otherwise it is a name associated with the memory /// region. If no name can be determined the returns nullptr. const char *GetName(); bool operator==(const lldb::SBMemoryRegionInfo &rhs) const; bool operator!=(const lldb::SBMemoryRegionInfo &rhs) const; bool GetDescription(lldb::SBStream &description); private: friend class SBProcess; friend class SBMemoryRegionInfoList; lldb_private::MemoryRegionInfo &ref(); const lldb_private::MemoryRegionInfo &ref() const; // Unused. SBMemoryRegionInfo(const lldb_private::MemoryRegionInfo *lldb_object_ptr); lldb::MemoryRegionInfoUP m_opaque_up; }; } // namespace lldb #endif // LLDB_SBMemoryRegionInfo_h_