003 File Manager
Current Path:
/usr/src/contrib/llvm-project/lldb/include/lldb/Core
usr
/
src
/
contrib
/
llvm-project
/
lldb
/
include
/
lldb
/
Core
/
📁
..
📄
Address.h
(19.2 KB)
📄
AddressRange.h
(8.4 KB)
📄
AddressResolver.h
(1.9 KB)
📄
AddressResolverFileLine.h
(1.93 KB)
📄
AddressResolverName.h
(2.12 KB)
📄
Architecture.h
(4.65 KB)
📄
Communication.h
(14.32 KB)
📄
Debugger.h
(13.51 KB)
📄
Disassembler.h
(18.46 KB)
📄
DumpDataExtractor.h
(3.58 KB)
📄
DumpRegisterValue.h
(1013 B)
📄
EmulateInstruction.h
(19.35 KB)
📄
FileLineResolver.h
(2.15 KB)
📄
FileSpecList.h
(5.88 KB)
📄
FormatEntity.h
(6.2 KB)
📄
Highlighter.h
(5.49 KB)
📄
IOHandler.h
(16.98 KB)
📄
IOHandlerCursesGUI.h
(928 B)
📄
IOStreamMacros.h
(1.87 KB)
📄
LoadedModuleInfoList.h
(2.86 KB)
📄
Mangled.h
(9.11 KB)
📄
MappedHash.h
(11.58 KB)
📄
Module.h
(42.01 KB)
📄
ModuleChild.h
(1.73 KB)
📄
ModuleList.h
(17.43 KB)
📄
ModuleSpec.h
(11.82 KB)
📄
Opcode.h
(6.75 KB)
📄
PluginInterface.h
(724 B)
📄
PluginManager.h
(17.12 KB)
📄
PropertiesBase.td
(1.3 KB)
📄
RichManglingContext.h
(3.78 KB)
📄
SearchFilter.h
(14.2 KB)
📄
Section.h
(9.83 KB)
📄
SourceManager.h
(5.59 KB)
📄
StreamAsynchronousIO.h
(973 B)
📄
StreamBuffer.h
(1.66 KB)
📄
StreamFile.h
(1.59 KB)
📄
StructuredDataImpl.h
(4.28 KB)
📄
ThreadSafeDenseMap.h
(1.59 KB)
📄
ThreadSafeDenseSet.h
(1.31 KB)
📄
ThreadSafeValue.h
(1.62 KB)
📄
UniqueCStringMap.h
(7.76 KB)
📄
UserSettingsController.h
(3.21 KB)
📄
Value.h
(6.99 KB)
📄
ValueObject.h
(36.66 KB)
📄
ValueObjectCast.h
(1.84 KB)
📄
ValueObjectChild.h
(2.82 KB)
📄
ValueObjectConstResult.h
(5.79 KB)
📄
ValueObjectConstResultCast.h
(2.26 KB)
📄
ValueObjectConstResultChild.h
(2.75 KB)
📄
ValueObjectConstResultImpl.h
(2.66 KB)
📄
ValueObjectDynamicValue.h
(3.72 KB)
📄
ValueObjectList.h
(1.69 KB)
📄
ValueObjectMemory.h
(2.59 KB)
📄
ValueObjectRegister.h
(4.09 KB)
📄
ValueObjectSyntheticFilter.h
(5.05 KB)
📄
ValueObjectVariable.h
(2.64 KB)
📄
dwarf.h
(3.19 KB)
Editing: AddressRange.h
//===-- AddressRange.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_CORE_ADDRESSRANGE_H #define LLDB_CORE_ADDRESSRANGE_H #include "lldb/Core/Address.h" #include "lldb/lldb-forward.h" #include "lldb/lldb-types.h" #include <stddef.h> namespace lldb_private { class SectionList; class Stream; class Target; /// \class AddressRange AddressRange.h "lldb/Core/AddressRange.h" /// A section + offset based address range class. class AddressRange { public: /// 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 §ion, 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 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(); /// 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_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 the resolved file address \a file_addr is contained within this /// object's file address range. /// /// \param[in] file_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 the resolved load address \a load_addr is contained within this /// object's load address range. /// /// \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; //------------------------------------------------------------------ /// Extends this range with \b rhs_range if it overlaps this range on the /// right side. The range overlaps on the right side if the base address /// of \b rhs_range lies within this range or if it's contiguous on its /// right side. /// /// @param[in] rhs_range /// The range to extend at the right side. /// /// @return /// Returns \b true if this range was extended, \b false otherwise. //------------------------------------------------------------------ bool Extend(const AddressRange &rhs_range); /// 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; /// 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 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); } /// 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. }; // bool operator== (const AddressRange& lhs, const AddressRange& rhs); } // namespace lldb_private #endif // LLDB_CORE_ADDRESSRANGE_H
Upload File
Create Folder