aboutsummaryrefslogtreecommitdiff
path: root/include/lldb/Core/AddressRange.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/lldb/Core/AddressRange.h')
-rw-r--r--include/lldb/Core/AddressRange.h465
1 files changed, 228 insertions, 237 deletions
diff --git a/include/lldb/Core/AddressRange.h b/include/lldb/Core/AddressRange.h
index 31e3286cb110..fa9fefbc0df1 100644
--- a/include/lldb/Core/AddressRange.h
+++ b/include/lldb/Core/AddressRange.h
@@ -22,266 +22,257 @@ namespace lldb_private {
/// @class AddressRange AddressRange.h "lldb/Core/AddressRange.h"
/// @brief A section + offset based address range class.
//----------------------------------------------------------------------
-class AddressRange
-{
+class AddressRange {
public:
- //------------------------------------------------------------------
- /// Default constructor.
- ///
- /// Initialize with a invalid section (NULL), an invalid
- /// offset (LLDB_INVALID_ADDRESS), and zero byte size.
- //------------------------------------------------------------------
- AddressRange ();
+ //------------------------------------------------------------------
+ /// Default constructor.
+ ///
+ /// Initialize with a invalid section (NULL), an invalid
+ /// offset (LLDB_INVALID_ADDRESS), and zero byte size.
+ //------------------------------------------------------------------
+ AddressRange();
- //------------------------------------------------------------------
- /// Construct with a section pointer, offset, and byte_size.
- ///
- /// Initialize the address with the supplied \a section, \a
- /// offset and \a byte_size.
- ///
- /// @param[in] section
- /// A section pointer to a valid lldb::Section, or NULL if the
- /// address doesn't have a section or will get resolved later.
- ///
- /// @param[in] offset
- /// The offset in bytes into \a section.
- ///
- /// @param[in] byte_size
- /// The size in bytes of the address range.
- //------------------------------------------------------------------
- AddressRange (const lldb::SectionSP &section, lldb::addr_t offset, lldb::addr_t byte_size);
+ //------------------------------------------------------------------
+ /// Construct with a section pointer, offset, and byte_size.
+ ///
+ /// Initialize the address with the supplied \a section, \a
+ /// offset and \a byte_size.
+ ///
+ /// @param[in] section
+ /// A section pointer to a valid lldb::Section, or NULL if the
+ /// address doesn't have a section or will get resolved later.
+ ///
+ /// @param[in] offset
+ /// The offset in bytes into \a section.
+ ///
+ /// @param[in] byte_size
+ /// The size in bytes of the address range.
+ //------------------------------------------------------------------
+ AddressRange(const lldb::SectionSP &section, lldb::addr_t offset,
+ lldb::addr_t byte_size);
- //------------------------------------------------------------------
- /// Construct with a virtual address, section list and byte size.
- ///
- /// Initialize and resolve the address with the supplied virtual
- /// address \a file_addr, and byte size \a byte_size.
- ///
- /// @param[in] file_addr
- /// A virtual address.
- ///
- /// @param[in] byte_size
- /// The size in bytes of the address range.
- ///
- /// @param[in] section_list
- /// A list of sections, one of which may contain the \a vaddr.
- //------------------------------------------------------------------
- AddressRange(lldb::addr_t file_addr, lldb::addr_t byte_size, const SectionList *section_list = nullptr);
+ //------------------------------------------------------------------
+ /// Construct with a virtual address, section list and byte size.
+ ///
+ /// Initialize and resolve the address with the supplied virtual
+ /// address \a file_addr, and byte size \a byte_size.
+ ///
+ /// @param[in] file_addr
+ /// A virtual address.
+ ///
+ /// @param[in] byte_size
+ /// The size in bytes of the address range.
+ ///
+ /// @param[in] section_list
+ /// A list of sections, one of which may contain the \a vaddr.
+ //------------------------------------------------------------------
+ AddressRange(lldb::addr_t file_addr, lldb::addr_t byte_size,
+ const SectionList *section_list = nullptr);
- //------------------------------------------------------------------
- /// Construct with a Address object address and byte size.
- ///
- /// Initialize by copying the section offset address in \a so_addr,
- /// and setting the byte size to \a byte_size.
- ///
- /// @param[in] so_addr
- /// A section offset address object.
- ///
- /// @param[in] byte_size
- /// The size in bytes of the address range.
- //------------------------------------------------------------------
- AddressRange (const Address& so_addr, lldb::addr_t byte_size);
+ //------------------------------------------------------------------
+ /// Construct with a Address object address and byte size.
+ ///
+ /// Initialize by copying the section offset address in \a so_addr,
+ /// and setting the byte size to \a byte_size.
+ ///
+ /// @param[in] so_addr
+ /// A section offset address object.
+ ///
+ /// @param[in] byte_size
+ /// The size in bytes of the address range.
+ //------------------------------------------------------------------
+ AddressRange(const Address &so_addr, lldb::addr_t byte_size);
- //------------------------------------------------------------------
- /// Destructor.
- ///
- /// The destructor is virtual in case this class is subclassed.
- //------------------------------------------------------------------
- ~AddressRange ();
+ //------------------------------------------------------------------
+ /// Destructor.
+ ///
+ /// The destructor is virtual in case this class is subclassed.
+ //------------------------------------------------------------------
+ ~AddressRange();
- //------------------------------------------------------------------
- /// Clear the object's state.
- ///
- /// Sets the section to an invalid value (NULL), an invalid offset
- /// (LLDB_INVALID_ADDRESS) and a zero byte size.
- //------------------------------------------------------------------
- void
- Clear ();
+ //------------------------------------------------------------------
+ /// Clear the object's state.
+ ///
+ /// Sets the section to an invalid value (NULL), an invalid offset
+ /// (LLDB_INVALID_ADDRESS) and a zero byte size.
+ //------------------------------------------------------------------
+ void Clear();
- //------------------------------------------------------------------
- /// Check if a section offset address is contained in this range.
- ///
- /// @param[in] so_addr
- /// A section offset address object reference.
- ///
- /// @return
- /// Returns \b true if \a so_addr is contained in this range,
- /// \b false otherwise.
- //------------------------------------------------------------------
-// bool
-// Contains (const Address &so_addr) const;
+ //------------------------------------------------------------------
+ /// Check if a section offset address is contained in this range.
+ ///
+ /// @param[in] so_addr
+ /// A section offset address object reference.
+ ///
+ /// @return
+ /// Returns \b true if \a so_addr is contained in this range,
+ /// \b false otherwise.
+ //------------------------------------------------------------------
+ // bool
+ // Contains (const Address &so_addr) const;
- //------------------------------------------------------------------
- /// Check if a section offset address is contained in this range.
- ///
- /// @param[in] so_addr_ptr
- /// A section offset address object pointer.
- ///
- /// @return
- /// Returns \b true if \a so_addr is contained in this range,
- /// \b false otherwise.
- //------------------------------------------------------------------
-// bool
-// Contains (const Address *so_addr_ptr) const;
+ //------------------------------------------------------------------
+ /// Check if a section offset address is contained in this range.
+ ///
+ /// @param[in] so_addr_ptr
+ /// A section offset address object pointer.
+ ///
+ /// @return
+ /// Returns \b true if \a so_addr is contained in this range,
+ /// \b false otherwise.
+ //------------------------------------------------------------------
+ // bool
+ // Contains (const Address *so_addr_ptr) const;
- //------------------------------------------------------------------
- /// Check if a section offset \a so_addr when represented as a file
- /// address is contained within this object's file address range.
- ///
- /// @param[in] so_addr
- /// A section offset address object reference.
- ///
- /// @return
- /// Returns \b true if both \a this and \a so_addr have
- /// resolvable file address values and \a so_addr is contained
- /// in the address range, \b false otherwise.
- //------------------------------------------------------------------
- bool
- ContainsFileAddress (const Address &so_addr) const;
+ //------------------------------------------------------------------
+ /// Check if a section offset \a so_addr when represented as a file
+ /// address is contained within this object's file address range.
+ ///
+ /// @param[in] so_addr
+ /// A section offset address object reference.
+ ///
+ /// @return
+ /// Returns \b true if both \a this and \a so_addr have
+ /// resolvable file address values and \a so_addr is contained
+ /// in the address range, \b false otherwise.
+ //------------------------------------------------------------------
+ bool ContainsFileAddress(const Address &so_addr) const;
- //------------------------------------------------------------------
- /// Check if the resolved file address \a file_addr is contained
- /// within this object's file address range.
- ///
- /// @param[in] so_addr
- /// A section offset address object reference.
- ///
- /// @return
- /// Returns \b true if both \a this has a resolvable file
- /// address value and \a so_addr is contained in the address
- /// range, \b false otherwise.
- //------------------------------------------------------------------
- bool
- ContainsFileAddress (lldb::addr_t file_addr) const;
+ //------------------------------------------------------------------
+ /// Check if the resolved file address \a file_addr is contained
+ /// within this object's file address range.
+ ///
+ /// @param[in] so_addr
+ /// A section offset address object reference.
+ ///
+ /// @return
+ /// Returns \b true if both \a this has a resolvable file
+ /// address value and \a so_addr is contained in the address
+ /// range, \b false otherwise.
+ //------------------------------------------------------------------
+ bool ContainsFileAddress(lldb::addr_t file_addr) const;
- //------------------------------------------------------------------
- /// Check if a section offset \a so_addr when represented as a load
- /// address is contained within this object's load address range.
- ///
- /// @param[in] so_addr
- /// A section offset address object reference.
- ///
- /// @return
- /// Returns \b true if both \a this and \a so_addr have
- /// resolvable load address values and \a so_addr is contained
- /// in the address range, \b false otherwise.
- //------------------------------------------------------------------
- bool
- ContainsLoadAddress (const Address &so_addr, Target *target) const;
+ //------------------------------------------------------------------
+ /// Check if a section offset \a so_addr when represented as a load
+ /// address is contained within this object's load address range.
+ ///
+ /// @param[in] so_addr
+ /// A section offset address object reference.
+ ///
+ /// @return
+ /// Returns \b true if both \a this and \a so_addr have
+ /// resolvable load address values and \a so_addr is contained
+ /// in the address range, \b false otherwise.
+ //------------------------------------------------------------------
+ bool ContainsLoadAddress(const Address &so_addr, Target *target) const;
- //------------------------------------------------------------------
- /// Check if the resolved load address \a load_addr is contained
- /// within this object's load address range.
- ///
- /// @param[in] so_addr
- /// A section offset address object reference.
- ///
- /// @return
- /// Returns \b true if both \a this has a resolvable load
- /// address value and \a so_addr is contained in the address
- /// range, \b false otherwise.
- //------------------------------------------------------------------
- bool
- ContainsLoadAddress (lldb::addr_t load_addr, Target *target) const;
+ //------------------------------------------------------------------
+ /// Check if the resolved load address \a load_addr is contained
+ /// within this object's load address range.
+ ///
+ /// @param[in] so_addr
+ /// A section offset address object reference.
+ ///
+ /// @return
+ /// Returns \b true if both \a this has a resolvable load
+ /// address value and \a so_addr is contained in the address
+ /// range, \b false otherwise.
+ //------------------------------------------------------------------
+ bool ContainsLoadAddress(lldb::addr_t load_addr, Target *target) const;
- //------------------------------------------------------------------
- /// Dump a description of this object to a Stream.
- ///
- /// Dump a description of the contents of this object to the
- /// supplied stream \a s. There are many ways to display a section
- /// offset based address range, and \a style lets the user choose
- /// how the base address gets displayed.
- ///
- /// @param[in] s
- /// The stream to which to dump the object description.
- ///
- /// @param[in] style
- /// The display style for the address.
- ///
- /// @return
- /// Returns \b true if the address was able to be displayed.
- /// File and load addresses may be unresolved and it may not be
- /// possible to display a valid value, \b false will be returned
- /// in such cases.
- ///
- /// @see Address::DumpStyle
- //------------------------------------------------------------------
- bool
- Dump (Stream *s, Target *target, Address::DumpStyle style, Address::DumpStyle fallback_style = Address::DumpStyleInvalid) const;
+ //------------------------------------------------------------------
+ /// Dump a description of this object to a Stream.
+ ///
+ /// Dump a description of the contents of this object to the
+ /// supplied stream \a s. There are many ways to display a section
+ /// offset based address range, and \a style lets the user choose
+ /// how the base address gets displayed.
+ ///
+ /// @param[in] s
+ /// The stream to which to dump the object description.
+ ///
+ /// @param[in] style
+ /// The display style for the address.
+ ///
+ /// @return
+ /// Returns \b true if the address was able to be displayed.
+ /// File and load addresses may be unresolved and it may not be
+ /// possible to display a valid value, \b false will be returned
+ /// in such cases.
+ ///
+ /// @see Address::DumpStyle
+ //------------------------------------------------------------------
+ bool
+ Dump(Stream *s, Target *target, Address::DumpStyle style,
+ Address::DumpStyle fallback_style = Address::DumpStyleInvalid) const;
- //------------------------------------------------------------------
- /// Dump a debug description of this object to a Stream.
- ///
- /// Dump a debug description of the contents of this object to the
- /// supplied stream \a s.
- ///
- /// The debug description contains verbose internal state such
- /// and pointer values, reference counts, etc.
- ///
- /// @param[in] s
- /// The stream to which to dump the object description.
- //------------------------------------------------------------------
- void
- DumpDebug (Stream *s) const;
+ //------------------------------------------------------------------
+ /// Dump a debug description of this object to a Stream.
+ ///
+ /// Dump a debug description of the contents of this object to the
+ /// supplied stream \a s.
+ ///
+ /// The debug description contains verbose internal state such
+ /// and pointer values, reference counts, etc.
+ ///
+ /// @param[in] s
+ /// The stream to which to dump the object description.
+ //------------------------------------------------------------------
+ void DumpDebug(Stream *s) const;
- //------------------------------------------------------------------
- /// Get accessor for the base address of the range.
- ///
- /// @return
- /// A reference to the base address object.
- //------------------------------------------------------------------
- Address &
- GetBaseAddress() { return m_base_addr; }
+ //------------------------------------------------------------------
+ /// Get accessor for the base address of the range.
+ ///
+ /// @return
+ /// A reference to the base address object.
+ //------------------------------------------------------------------
+ Address &GetBaseAddress() { return m_base_addr; }
- //------------------------------------------------------------------
- /// Get const accessor for the base address of the range.
- ///
- /// @return
- /// A const reference to the base address object.
- //------------------------------------------------------------------
- const Address &
- GetBaseAddress() const { return m_base_addr; }
+ //------------------------------------------------------------------
+ /// Get const accessor for the base address of the range.
+ ///
+ /// @return
+ /// A const reference to the base address object.
+ //------------------------------------------------------------------
+ const Address &GetBaseAddress() const { return m_base_addr; }
- //------------------------------------------------------------------
- /// Get accessor for the byte size of this range.
- ///
- /// @return
- /// The size in bytes of this address range.
- //------------------------------------------------------------------
- lldb::addr_t
- GetByteSize () const { return m_byte_size; }
+ //------------------------------------------------------------------
+ /// Get accessor for the byte size of this range.
+ ///
+ /// @return
+ /// The size in bytes of this address range.
+ //------------------------------------------------------------------
+ lldb::addr_t GetByteSize() const { return m_byte_size; }
- //------------------------------------------------------------------
- /// Get the memory cost of this object.
- ///
- /// @return
- /// The number of bytes that this object occupies in memory.
- //------------------------------------------------------------------
- size_t
- MemorySize () const {
- // Noting special for the memory size of a single AddressRange object,
- // it is just the size of itself.
- return sizeof(AddressRange);
- }
+ //------------------------------------------------------------------
+ /// Get the memory cost of this object.
+ ///
+ /// @return
+ /// The number of bytes that this object occupies in memory.
+ //------------------------------------------------------------------
+ size_t MemorySize() const {
+ // Noting special for the memory size of a single AddressRange object,
+ // it is just the size of itself.
+ return sizeof(AddressRange);
+ }
- //------------------------------------------------------------------
- /// Set accessor for the byte size of this range.
- ///
- /// @param[in] byte_size
- /// The new size in bytes of this address range.
- //------------------------------------------------------------------
- void
- SetByteSize (lldb::addr_t byte_size) { m_byte_size = byte_size; }
+ //------------------------------------------------------------------
+ /// Set accessor for the byte size of this range.
+ ///
+ /// @param[in] byte_size
+ /// The new size in bytes of this address range.
+ //------------------------------------------------------------------
+ void SetByteSize(lldb::addr_t byte_size) { m_byte_size = byte_size; }
protected:
- //------------------------------------------------------------------
- // Member variables
- //------------------------------------------------------------------
- Address m_base_addr; ///< The section offset base address of this range.
- lldb::addr_t m_byte_size; ///< The size in bytes of this address range.
+ //------------------------------------------------------------------
+ // Member variables
+ //------------------------------------------------------------------
+ Address m_base_addr; ///< The section offset base address of this range.
+ lldb::addr_t m_byte_size; ///< The size in bytes of this address range.
};
-//bool operator== (const AddressRange& lhs, const AddressRange& rhs);
+// bool operator== (const AddressRange& lhs, const AddressRange& rhs);
} // namespace lldb_private